PHẦN MỞ ĐẦU 1.1 Tính cấp thiết của đề tài Làm việc nhóm là một trong những kỹ năng mềm quan trọng bậc nhất đối với bất kỳ ngành nghề nào. Một trong những chìa khóa thành công của làm nhóm là quản lý nhóm tốt. Một trưởng nhóm tốt sẽ phải phân bố công việc và độ khó phù hợp với từng thành viên, một thành viên tốt sẽ phân bố thời gian hoàn thành công việc tốt và đúng hạn. Hiện tại các nhóm quản lý và phân công việc thường qua các ứng dụng chat như Messenger của Facebook, Zalo, Telegram,… hoặc ghi việc và phân công qua một file text (PDF, Word,…), có người sẽ dùng Excel, Google Sheet.
Các cách ghi việc và phân việc như trên vẫn tốt những nó có một vài hạn chế: Chat qua các app các tin nhắn sẽ dễ trôi mất, các file text thì muốn update thì phải sửa file hay phân việc mới phải tạo thêm rồi phải lưu trữ thêm nhiều file -> Những lịch sử thay đổi, deadline, mức độ hoàn thành,… rất khó theo dõi. Ngoài ra, cũng có các công cụ thương mại hỗ trợ quản lý nhóm. Tuy nhiên các công cụ này yêu cầu người dùng phải trả một khoản phí nhất định để sử dụng. Nếu áp dụng tại Khoa Công nghệ thông tin, rất khó để tìm ra được khoản chi phí để chi trả cho các ứng dụng này.
Bên cạnh đó, trong quá trình làm việc của bản thân, chúng ta cũng cần ghi chép các việc phải làm, phân bố thời gian một các hợp lý. Để giải quyết vấn đề này, chúng ta chủ yếu sẽ tự ghi nhớ hoặc ghi ra note và các cách này cũng khó quản lý và tạo các ràng buộc cho bản thân. Ý tưởng dựa trên việc quản lý source code với các công cụ Source Control như Git, SVN giúp theo dõi các thay đổi, quản lý code tốt hơn. Các công việc (task) được giao cũng cần có một ứng dụng quản lý và theo dõi để giúp các nhóm dễ dàng nắm được công việc được giao, thời hạn, theo dõi mức độ hoàn thành.
Hơn thế nữa, những ai không làm việc nhóm cũng có thể sử dụng ứng dụng này để tự quản lý công việc tốt hơn.Vậy nên, với đề tài này, ta sẽ giải quyết được: - Giao việc nhanh gọn với đầy đủ thông tin giúp người được giao việc đơn giản hơn trong việc xem lại và làm rõ nhiệm vụ. - Lưu trữ dễ dàng công việc đã giao và có thể đem ra đối ứng mọi lúc. - Lưu trữ các miêu tả, thay đổi về công việc và trao đổi của những người được giao việc. - Theo dõi dễ dàng tiến độ và tình hình công việc.
1 - Đơn giản trong nắm bắt tình trạng công việc và thống kê nhờ vào các biểu đồ. Đó chính là những lý do, em thực hiện đề tài “Phát triển ứng dụng web quản lý công việc dành cho giảng viên trường Cao Đẳng Công Nghệ Thủ Đức”.2 Mục đích của đề tài Nghiên cứu giải pháp hỗ trợ thực hiện việc giao, nhận, quản lý công việc trở nên gọn gàng và rõ ràng hơn cũng như tạo được sự thú vị trong công việc.3 Phạm vi nghiên cứu Phạm vi nghiên cứu là các công nghệ phát triển website gồm: - Frontend: React. - Backend: NodeJs, MongoDB, Express.4 Định hướng phát triển của đề tài Ứng dụng được định hướng phát triển theo giai đoạn như sau: 1. Giai đoạn A, phát triển hệ thống cơ bản để giao và nhận việc.
Giai đoạn B, phát triển thêm giúp hệ thống có thể thông báo khi người dùng được giao việc và khi công việc gần tới hạn chót. Giai đoạn C, xây dựng dữ liệu chặt chẽ để thống kê và tạo ra các biểu đồ giúp dễ dàng trong việc nắm bắt tình hình dự án. Giai đoạn D, vận hành và bảo trì hệ thống.5 Nội dung nghiên cứu - Phân tích các Model của hệ cơ sở dữ liệu không quan hệ để xây dựng nên một hệ thống lưu trữ và quản lý công việc. - Sử dụng React để tạo ra một frontend riêng biệt không phụ thuộc vào server.
- Dựng server API bằng NodeJS, Express để giao tiếp với frontend. - Tạo cơ sở dữ liệu không quan hệ bằng MongoDB để lưu trữ. - Dùng SocketIO để tạo nên các thay đổi realtime với nhiều người dùng cùng lúc. CÁC CÔNG NGHỆ, KỸ THUẬT SỬ DỤNG TRONG ĐỀ TÀI 2.1 Các công nghệ và kỹ thuật áp dụng Sử dụng React sẽ tạo nên một trải nghiệm mượt mà cho người dùng ở phía giao diện.
NodeJS và Express là một lựa chọn tuyệt vời trong việc xây dựng một server API. MongoDB là một cơ sở dữ liệu không quan hệ nên nó sẽ chẳng có một ràng buộc hay quy định nào trong việc xây dựng database. SocketIo là một thư viện hỗ trợ realtime được lựa chọn hàng đầu.2 Những ưu điểm và các lý do áp dụng công nghệ Với việc sử dụng React để dựng riêng một Frontend sẽ tạo được sự độc lập đối với cả Frontend và Backend, giúp sau này việc thay đổi một trong hai trở nên đơn giản. Ngoài ra, React hiện đang là một trong những thư viện Frontend được lựa chọn nhiều nhất vì tốc độ, sự mượt mà, tiện lợi mà nó đem lại và có một công ty phía sau phát triển là Facebook.
NodeJS nổi tiếng với việc xử lý đa tác vụ tốc độ nhanh và Express chính là lựa chọn số 1 khi thiết kế API vì sự đơn giản nhưng vẫn mạnh mẽ trong việc dựng các route. Mongoose là một thư viện tuyệt vời trong hỗ trợ tất tần tật các thao tác từ cơ bản đến nâng cao trong việc truy xuất vào database là MongoDB. MongoDB có thể dễ dàng xây dựng một hệ thống Database hoàn chỉnh mà không có bất kì quy định ràng buộc khó khăn nào. Như vậy thay vì suy nghĩ về việc “đưa dữ liệu bằng cách nào?” thì câu hỏi sẽ trở nên dễ dàng hơn với MongoDB đó là “đưa dữ liệu như thế nào?”.
Vì sự thoải mái này nên việc ta thay đổi cấu trúc Database sau này cũng trở nên đơn giản và ít ảnh hưởng đến cấu trúc ban đầu. SocketIo là một thư viện NodeJS lựa chọn ự dụng hàng đầu cho realtime và được xây dựng dựa trên WebSockets với phương thức giao tiếp Event-based communication rất dễ làm quen và sử dụng. Tất cả các công nghệ trên đều được viết bằng duy nhất một ngôn ngữ quen thuộc được sử dụng rộng rãi là JavaScript và chạy trên nền NodeJS. JavaScript ở Việt Nam nói riêng là ngôn ngữ được tuyển dụng, sử dụng rất nhiều và cũng là ngôn ngữ nắm top 1 trên Github suốt nhiều năm do các lập trình viên bình chọn.
ĐẶC TẢ YÊU CẦU PHẦN MỀM 3.1 Mô tả yêu cầu 3.1 Phát biểu bài toán Yêu cầu của bài toán là xây dựng một trang web quản lý công việc dễ dàng sử dụng nhưng vẫn rõ ràng minh bạch trong công việc được giao, một giao diện người dùng dễ nhìn kèm biểu đồ thống kê khiến việc trải nghiệm trở nên thú vị hơn với người dùng. Đồng thời cần phải thông báo cho người dùng khi nhận được việc hoặc khi công việc được giao gần tới hạn chót. Hệ thống cũng cần xử lý realtime để mọi dữ liệu về công việc và các trao đổi được đồng bộ và kịp thời.2 Mục tiêu hệ thống Giúp các giáo viên là các người dùng quản lý công việc nhanh gọn và minh bạch hơn.3 So sánh với Trello Phần mềm được lấy ý tưởng từ Trello nên về một số chức năng cơ bản thì khá giống với Trello. Tuy nhiên phần giao diện, chức năng đã được đơn giản hóa để dễ dùng hơn và có thêm các biểu đồ thống kê.4 Phạm vi hệ thống Khi các phòng Khoa và các giáo viên đã quen với việc sử dụng và quản lý với nhau rồi thì có thể mở rộng thêm dùng với các sinh viên của mình hoặc thậm chí đưa cho sinh viên sử dụng để giáo viên dễ dàng quản lý các đội nhóm của lớp mình trong quá trình giảng dạy.5 Người dùng STT Actor Chức năng 1 Quản lý viên hệ thống Xóa user, project, truy cập vào các Project với quyền cao nhất.
2 Người dùng Tạo project, quản lý project của mình và tham gia các project khác.2 Lấy yêu cầu phần mềm 3.1 Quy trình nghiệp vụ 3.1 Quy trình tạo Project mới A Mô hình quy trình nghiệp vụ Sơ đồ 1: Quy trình tạo Project B Mô tả quy trình Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống. Sau khi đăng nhập vào, người dùng sẽ nhập tên Project ở mục Create tại trang chủ. Sau khi nhập xong tên Project người dùng ấn nút Create, project sẽ được tạo và người dùng được dẫn đến page Project vừa được tạo.2 Quy trình tham gia một Project. A Mô hình quy trình nghiệp vụ Sơ đồ 2: Quy trình tham gia Project B Mô tả quy trình Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống.
6 Sau khi đăng nhập vào, người dùng sẽ nhập ID của Project muốn vào ở mục Join tại trang chủ. Sau khi nhập xong ID Project người dùng ấn nút Join và người dùng sẽ được dẫn đến page Project với ID vừa nhập. Page Project sẽ kiểm tra người dùng có trong black list không? Nếu có sẽ không cho vào ngược lại sẽ được thêm vào Project và tạo role mặc định.3 Quy trình thêm người dùng vào Project A Mô hình quy trình nghiệp vụ Sơ đồ 3: Quy trình thêm người dùng khác vào Project 8 B Mô tả quy trình Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống. Người dùng vào Project mà muốn thêm người dùng khác vào.
Ấn vào icon thêm người dùng ở góc trên phải một Dialog sẽ hiện lên. Nhập email người dùng muốn thêm vào. Ấn vào nút add. Page Project sẽ kiểm tra người dùng có trong danh sách đã bị đuổi không? Nếu có sẽ không cho vào ngược lại sẽ được thêm vào Project và tạo role mặc định.4 Quy trình tạo Lane mới A Mô hình quy trình nghiệp vụ Sơ đồ 4: Quy tạo Lane mới trong Project B Mô tả quy trình Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống.
Người dùng vào Project mà muốn tạo thêm Lane. Ấn vào nút Add New Lane một Dialog sẽ hiện lên. Nhập tên Lane và chọn màu sắc cho Lane. Ấn vào nút ADD.
Dialog sẽ tắt đi và một cột mới sẽ được tạo ra với tên và màu sắc được người dùng chọn.5 Quy trình tạo một công việc mới A Mô hình quy trình nghiệp vụ Sơ đồ 5: Quy trình thêm một công việc mới vào Lane B Mô tả quy trình Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống.