1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát triển ứng dụng web quản lý công việc

64 5 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát Triển Ứng Dụng Web Quản Lý Công Việc
Tác giả Nguyễn Minh Triết
Người hướng dẫn ThS. Nguyễn Huy Hoàng
Trường học Trường Cao Đẳng Công Nghệ Thủ Đức
Chuyên ngành Công Nghệ Thông Tin
Thể loại Nghiên Cứu Khoa Học
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 64
Dung lượng 1,49 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • PHẦN 1. PHẦN MỞ ĐẦU (11)
    • 1.1 ĐẶT VẤN ĐỀ (11)
      • 1.1.1 Tính cấp thiết của đề tài (11)
      • 1.1.2 Mục đích của đề tài (12)
      • 1.1.3 Phạm vi nghiên cứu (12)
      • 1.1.4 Định hướng phát triển của đề tài (12)
      • 1.1.5 Nội dung nghiên cứu (12)
  • PHẦN 2. CÁC CÔNG NGHỆ, KỸ THUẬT SỬ DỤNG TRONG ĐỀ TÀI (13)
    • 2.1 Các công nghệ và kỹ thuật áp dụng (13)
    • 2.2 Những ưu điểm và các lý do áp dụng công nghệ (13)
  • PHẦN 3. ĐẶC TẢ YÊU CẦU PHẦN MỀM (14)
    • 3.1 Mô tả yêu cầu (14)
      • 3.1.1 Phát biểu bài toán (14)
      • 3.1.2 Mục tiêu hệ thống (14)
      • 3.1.3 Phạm vi hệ thống (0)
      • 3.1.4 Người dùng (0)
    • 3.2 Lấy yêu cầu phần mềm (15)
      • 3.2.1 Quy trình nghiệp vụ (15)
      • 3.2.2 Yêu cầu chức năng của người dùng (36)
      • 3.2.3 Yêu cầu khác (36)
    • 3.3 Chức năng của hệ thống (37)
      • 3.3.1 Sơ đồ Usecase (37)
      • 3.3.2 Mô tả Usecase (37)
      • 3.3.3 Yêu cầu chức năng (38)
      • 3.3.4 Yêu cầu phi chức năng (48)
  • PHẦN 4. XÂY DỰNG CHƯƠNG TRÌNH (49)
    • 4.1 Ràng buộc kỹ thuật (49)
    • 4.2 Hệ thống (49)
      • 4.2.1 Mô hình hệ thống (49)
      • 4.2.2 Database – MongoDB (50)
      • 4.2.3 Danh sách các route API xử lý tại Server (54)
    • 4.3 Phát triển hệ thống (54)
    • 4.4 Trải nghiệm hệ thống thực tế (54)
    • 4.5 Kiểm thử ứng dụng (62)
      • 4.5.1 Kiểm thử chức năng ứng dụng (62)
      • 4.5.2 Kiểm thử hiệu năng ứng dụng (62)
  • PHẦN 5. KẾT LUẬN – HƯỚNG PHÁT TRIỂN (63)
    • 5.1 Kết quả đạt được (63)
      • 5.1.1 Kiến thức học được (63)
    • 5.2 Hạn chế của phần mềm (63)
    • 5.3 Hướng phát triển (63)
    • 5.4 Kết luận (63)

Nội dung

PHẦN MỞ ĐẦU

ĐẶT VẤN ĐỀ

1.1.1 Tính cấp thiết của đề tài

Làm việc nhóm là kỹ năng mềm thiết yếu trong mọi ngành nghề, với quản lý nhóm hiệu quả là chìa khóa thành công Một trưởng nhóm giỏi biết cách phân công công việc và độ khó phù hợp cho từng thành viên, trong khi một thành viên xuất sắc cần quản lý thời gian hoàn thành nhiệm vụ một cách hợp lý và đúng hạn.

Hiện nay, việc quản lý và phân công công việc chủ yếu diễn ra qua các ứng dụng chat như Messenger, Zalo, Telegram, hoặc thông qua các tài liệu như file PDF, Word Nhiều người cũng sử dụng Excel và Google Sheet để ghi chép và phân công nhiệm vụ.

Mặc dù các phương pháp ghi việc và phân việc hiện tại mang lại nhiều lợi ích, nhưng chúng cũng tồn tại một số hạn chế Việc chat qua các ứng dụng có thể khiến tin nhắn dễ bị trôi mất, trong khi các file text cần phải được cập nhật bằng cách sửa đổi hoặc tạo thêm file mới, dẫn đến việc lưu trữ nhiều tài liệu Điều này làm cho việc theo dõi lịch sử thay đổi, deadline và mức độ hoàn thành trở nên khó khăn hơn.

Có nhiều công cụ thương mại hỗ trợ quản lý nhóm, nhưng chúng thường yêu cầu người dùng trả phí để sử dụng Tại Khoa Công nghệ thông tin, việc tìm kiếm nguồn kinh phí để chi trả cho các ứng dụng này gặp nhiều khó khăn.

Trong quá trình làm việc, việc ghi chép các công việc cần làm và phân bổ thời gian hợp lý là rất quan trọng Thay vì chỉ dựa vào trí nhớ hoặc ghi chú, việc sử dụng các công cụ quản lý nguồn như Git hay SVN sẽ giúp theo dõi và quản lý công việc hiệu quả hơn Các ứng dụng quản lý công việc không chỉ hỗ trợ các nhóm trong việc nắm bắt nhiệm vụ, thời hạn và mức độ hoàn thành, mà còn giúp những người làm việc độc lập tự quản lý công việc của mình tốt hơn Với những giải pháp này, chúng ta có thể nâng cao hiệu suất làm việc và quản lý thời gian hiệu quả.

- 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

Đề 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” được thực hiện nhằm đơn giản hóa việc nắm bắt tình trạng công việc và thống kê thông qua các biểu đồ.

1.1.2 Mục đích của đề tài

Nghiên cứu các giải pháp nhằm cải thiện quy trình giao, nhận và quản lý công việc, giúp cho công việc trở nên gọn gàng, rõ ràng và thú vị hơn.

Phạm vi nghiên cứu là các công nghệ phát triển website gồm:

1.1.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

2 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

3 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

4 Giai đoạn D, vận hành và bảo trì hệ thống

- 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

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.

Những ưu điểm và các lý do áp dụng công nghệ

Sử dụng React để xây dựng Frontend mang lại sự độc lập cho cả Frontend và Backend, giúp việc thay đổi một trong hai dễ dàng hơn trong tương lai Hiện nay, React là một trong những thư viện Frontend phổ biến nhất nhờ vào tốc độ, tính mượt mà và tiện lợi, cùng với sự hỗ trợ từ Facebook.

NodeJS nổi bật với khả năng xử lý đa tác vụ nhanh chóng, trong khi Express là lựa chọn hàng đầu cho việc thiết kế API nhờ vào sự đơn giản và sức mạnh trong việc xây dựng các route Mongoose là thư viện tuyệt vời hỗ trợ đầy đủ các thao tác từ cơ bản đến nâng cao khi truy xuất dữ liệu từ cơ sở dữ liệu MongoDB.

MongoDB cho phép xây dựng hệ thống cơ sở dữ liệu một cách linh hoạt mà không gặp phải các ràng buộc phức tạp Thay vì lo lắng về cách thức đưa dữ liệu vào, người dùng chỉ cần tập trung vào cách thức tối ưu hóa quá trình này Sự linh hoạt này cũng giúp cho việc thay đổi cấu trúc dữ liệu trở nên dễ dàng hơn.

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 is a leading NodeJS library for real-time applications, built on WebSockets and utilizing an easy-to-use event-based communication method.

Tất cả các công nghệ này đều được phát triển bằng JavaScript, một ngôn ngữ lập trình phổ biến, và hoạt động trên nền tảng NodeJS.

Tiếng Việt là ngôn ngữ được ưa chuộng trong tuyển dụng và sử dụng rộng rãi, đồng thời giữ vị trí top 1 trên Github trong nhiều năm nhờ sự bình chọn của các lập trình viên.

ĐẶC TẢ YÊU CẦU PHẦN MỀM

Mô tả yêu cầu

Yêu cầu xây dựng một trang web quản lý công việc cần đảm bảo tính dễ sử dụng và minh bạch trong công việc Giao diện người dùng nên thân thiện và có biểu đồ thống kê để nâng cao trải nghiệm người dùng Ngoài ra, hệ thống cũng cần thông báo cho người dùng khi có công việc mới hoặc khi hạn chót công việc đang đến gần.

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

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

Phần mềm này được phát triển dựa trên ý tưởng từ Trello, mang đến những chức năng cơ bản tương tự Tuy nhiên, giao diện và tính năng đã được tối ưu hóa để dễ sử dụng hơn, đồng thời tích hợp thêm các biểu đồ thống kê hữu ích.

Khi các phòng Khoa và giáo viên đã thành thạo trong việc sử dụng và quản lý, họ có thể mở rộng ứng dụng cho sinh viên Việc này giúp giáo viên dễ dàng quản lý các đội nhóm trong lớp trong quá trình giảng dạy.

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

Lấy yêu cầu phần mềm

3.2.1.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

 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

3.2.1.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

 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 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 xem người dùng có nằm trong danh sách đen hay không Nếu có, người dùng sẽ không được phép truy cập; ngược lại, họ sẽ được thêm vào Project và được cấp một vai trò mặc định.

3.2.1.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

 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

Page Project sẽ xác minh xem người dùng có nằm trong danh sách đã bị đuổi hay không Nếu có, người dùng sẽ không được phép truy cập; ngược lại, họ sẽ được thêm vào Project và được cấp một vai trò mặc định.

3.2.1.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

 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

 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

3.2.1.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

 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 Công việc

 Nhấn vào icon dấu cộng ở góc trên phải của Lane mà bạn muốn thêm công việc thì một Dialog sẽ hiện

 Người dùng sẽ nhập tên công việc, chú thích, người nhận công việc, độ khó và hạn chót của công việc

 Sau khi nhập xong Ấn vào nút ADD

 Dialog sẽ đóng lại và một công việc mới sẽ được thêm vào cuối Lane người dùng chọn

3.2.1.6 Quy trình thêm danh sách các công việc nhỏ trong công việc

A Mô hình quy trình nghiệp vụ

Sơ đồ 6: Quy trình thêm công việc nhỏ trong công việc

 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 Công việc nhỏ

 Nhấn vào tiêu đề của công việc muốn thêm công việc nhỏ bên trong

 Sau khi nhấn vào một Dialog với thông tin công việc sẽ hiện lên, người dùng vào mục CHECKLIST nhập tên công việc nhỏ muốn thêm

 Sau khi nhập xong Ấn icon dấu cộng hoặc ấn enter ngay tại ô input

 Một công việc nhỏ sẽ được tạo ra ở mục CHECKLIST

3.2.1.7 Quy trình Bình luận một công việc

A Mô hình quy trình nghiệp vụ

Sơ đồ 7: Quy trình bình luận về một công việc

 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 có công việc muốn bình luận

 Nhấn vào tiêu đề của công việc muốn đăng bình luận

 Sau khi nhấn vào một Dialog với thông tin công việc sẽ hiện lên, người dùng vào mục ACTIVITY nhập bình luận vào textarea

 Sau khi nhập xong bình luận ấn vào nút Add Comment bên dưới

 Một bình luận mới sẽ được tạo ra trên đầu danh sách bình luận

3.2.1.8 Quy trình xem công việc theo dạng Bảng

A Mô hình quy trình nghiệp vụ

Sơ đồ 8: Quy trình xem các công việc theo dạng Bảng

 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 muốn xem các công việc theo dạng bảng

 Sau khi vào trang Project thì nhấn vào menu Table

 Người dùng sẽ được đưa vào tab có một Table lớn hiển thị tất cả công việc trong Project

3.2.1.9 Quy trình kiểm tra biểu đồ của Dự án

A Mô hình quy trình nghiệp vụ

Sơ đồ 9: Quy trình kiểm tra biểu đồ

 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 muốn xem biểu đồ

 Sau khi vào trang Project thì nhấn vào menu Chart

 Người dùng sẽ được đưa vào tab có 4 biểu đồ thông tin về dự án

3.2.1.10 Quy trình kiểm tra thông báo dự án

A Mô hình quy trình nghiệp vụ

Sơ đồ 10: Quy kiểm tra thông báo dự án

 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 có thông báo cần xem

 Sau khi vào trang Project thì nhấn vào menu Notification

Khi người dùng nhấn vào thông báo, họ sẽ được chuyển đến tab thông báo, nơi có danh sách các thông báo liên quan Điều này giúp người dùng dễ dàng truy cập vào công việc mà thông báo đề cập.

3.2.1.11 Quy trình chỉnh sửa thông tin công việc

A Mô hình quy trình nghiệp vụ

Sơ đồ 11: Quy trình chỉnh sửa thông tin công việc

 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 có công việc cần chỉnh sửa

 Nhấn vào tiêu đề của công việc muốn chỉnh sửa

 Sau khi nhấn vào một Dialog với thông tin công việc sẽ hiện lên, Người dùng có thể chỉnh sửa những thông tin trong Dialog

 Sau khi chỉnh sửa xong người dùng ấn vào nút SAVE Các thông tin vừa điền sẽ được lưu lại

A Mô hình quy trình nghiệp vụ

Sơ đồ 12: Quy trình xóa Lane của Project

 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à xóa Lane

 Nhấn vào icon dấu x ở góc trên phải của Lane mà bạn muốn xóa

 Một Dialog Cofirm sẽ hiện lên, người dùng ấn vào nút Confirm để xóa

3.2.1.13 Quy trình Xóa công việc

A Mô hình quy trình nghiệp vụ

Sơ đồ 13: Quy trình xóa công việc

 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à xóa Công việc

 Nhấn vào icon thùng rác ở góc trên phải của công việc mà bạn muốn xóa

 Một Dialog Cofirm sẽ hiện lên, người dùng ấn vào nút Confirm để xóa

3.2.1.14 Quy trình sửa level thành viên trong Project

A Mô hình quy trình nghiệp vụ

Sơ đồ 14: Quy trình đổi level thành viên

 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 muốn đổi level thành viên

 Nhập level mới vào ô input field kế bên thành viên cần đổi

 Ấn nút SAVE để lưu level thành viên

3.2.1.15 Quy trình đánh dấu hoàn thành công việc

A Mô hình quy trình nghiệp vụ

Sơ đồ 15: Quy trình đánh dấu hoàn thành công việc

 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 đánh dấu hoàn thành công việc

 Nhấn vào tiêu đề của công việc muốn đánh dấu hoàn thành

 Sau khi nhấn vào một Dialog với thông tin công việc sẽ hiện lên, người dùng nhấn vào checkbox DueDate để đánh dấu đã hoàn thành công việc

3.2.1.16 Quy trình chỉnh sửa người dùng

A Mô hình quy trình nghiệp vụ

Sơ đồ 16: Quy trình thay đổi thông tin người dùng

 Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống

 Người dùng truy cập vào trang Admin

 Sau khi vào trang Admin, chọn menu Users

 Nhấn vào icon bút chì ở cột cuối của hàng người dùng muốn chỉnh sửa

Một hộp thoại xuất hiện cho phép nhập email, tên người dùng và tích chọn checkbox isAdmin để thiết lập quyền admin cho người dùng Tại đây, người dùng có thể chỉnh sửa tên và quyền admin của các tài khoản khác.

 Ấn nút SAVE để lưu sau khi chỉnh sửa xong người dùng

3.2.1.17 Quy trình xóa người dùng khỏi hệ thống

A Mô hình quy trình nghiệp vụ

Sơ đồ 17: Quy trình xóa người dùng khỏi hệ thống

 Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống

 Người dùng truy cập vào trang Admin

 Sau khi vào trang Admin, chọn menu Users

 Nhấn vào icon thùng rác ở cột cuối của hàng người dùng muốn xóa

 Một Dialog sẽ hiện lên và hỏi người dùng có thật sự muốn xóa, lúc này người dùng chỉ cần ấn vào nút Confirm để xác nhận xóa

3.2.1.18 Quy trình xóa dự án khỏi hệ thống

A Mô hình quy trình nghiệp vụ

Sơ đồ 18: Quy trình xóa một dự án

 Khi mở hệ thống, người dùng sẽ cần đăng nhập vào hệ thống

 Người dùng truy cập vào trang Admin

 Sau khi vào trang Admin, chọn menu Projects

 Nhấn vào icon thùng rác ở cột cuối của hàng dự án muốn xóa

 Một Dialog sẽ hiện lên và hỏi người dùng có thật sự muốn xóa, lúc này người dùng chỉ cần ấn vào nút Confirm để xác nhận xóa

3.2.2 Yêu cầu chức năng của người dùng Đối với Admin

1 Xem thông tin tất cả người dùng

2 Xem thông tin tất cả dự án

4 Cấp quyền admin cho người dùng khác

9 Xóa dự án của mình tạo

15 Thêm danh sách công việc nhỏ bên trong công việc

16 Xóa các công việc nhỏ bên trong công việc

17 Bình luận về công việc

18 Đánh dấu hoàn thành công việc

19 Di chuyển công việc từ Lane này sang Lane khác

20 Đăng nhập dễ dàng với gmail

21 Ứng dụng phải được cập nhật nhanh chóng dễ dàng

22 Dễ dàng thay đổi quy trình nghiệp vụ trong tương lai

23 Tất cả người dùng cần đăng nhập để sử dụng

24 Chỉ có người tạo ra dự án và admin mới có quyền xóa dự án.

Chức năng của hệ thống

Sơ đồ 19: Usecase hệ thống

# Mã UC Tên Usecase Mô tả

Quản lý người dùng Cho phép Actor xem danh sách cũng như xóa, sửa những người dùng

Quản lý dự án Cho phép Actor xem danh sách cũng như xóa các dự án

Toàn quyền truy cập các dự án

Cho phép Actor vào các dự án với quyền owner

Tạo, xóa dự án Cho phép Actor tạo dự án cũng như xóa dự án mình tạo ra

Tham gia dự án Cho phép Actor tham gia vào một dự án khác

Thêm, xóa, sửa công việc

Cho phép Actor thêm công việc và xóa, sửa các công việc đó

Bình luận về công việc

Cho phép Actor tham gia bình luận về công việc

Thêm công việc nhỏ bên trong công việc

Cho phép Actor nhập thêm các danh sách công việc nhỏ bên trong công việc

06 Đánh dấu hoàn thành công việc

Cho phép Actor đánh dấu hoàn thành công việc được giao

Di chuyển công việc từ Lane này sang Lane khác

Cho phép Actor di chuyển công việc của mình từ Lane này sang Lane khác

3.3.3.1 UC- AD-01: Quản lý người dùng

Tên Quản lý người dùng Mã UC-AD-01

Mô tả Cho phép Actor xem danh sách cũng như xóa, sửa những người dùng

Actor Admin Trigger Actor mở trang

Pre-condition Đăng nhập dưới quyền admin

Thông tin người dùng khác bị sửa hoặc xóa

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Hệ thống kiểm tra quyền admin

3 Hệ thống xác thực quyền admin và cho phép người dùng vào trang admin

4 Người dùng chọn menu Users

5 Người dùng xem danh sách users và chọn chỉnh sửa hoặc xóa user khác

1 Người dùng đăng nhập vào hệ thống

2 Hệ thống kiểm tra quyền admin

3 Hệ thống xác thực người dùng không phải admin và đưa về trang chủ

Hình 1: Trang quản lý Users

Hình 2: Form chỉnh sửa user

3.3.3.2 UC-AD-02: Quản lý dự án

Tên Quản lý dự án Mã UC- AD -02

Mô tả Cho phép Actor xem danh sách cũng như xóa các dự án

Actor Admin Trigger Actor mở trang

Pre-condition Đăng nhập dưới quyền admin

Một dự án bị xóa

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Hệ thống kiểm tra quyền admin

3 Hệ thống xác thực quyền admin và cho phép người dùng vào trang admin

4 Người dùng chọn menu Projects

5 Người dùng xem danh sách dự án hoặc xóa dự án

1 Người dùng đăng nhập vào hệ thống

2 Hệ thống kiểm tra quyền admin

3 Hệ thống xác thực người dùng không phải admin và đưa về trang chủ

Hình 3: Trang quản lý dự án

3.3.3.3 UC-US-01: Tạo, xóa dự án

Tên Tạo, xóa dự án Mã UC-US-01

Mô tả Cho phép Actor tạo dự án cũng như xóa dự án mình tạo ra

Actor User, Admin Trigger Actor nhập tên dự án và ấn nút “CREATE” ở trang chủ

Pre-condition Người dùng cần đăng nhập

Chuyển tới trang Dự án vừa tạo Đồng thời người tạo được set quyền owner cho dự án

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Người dùng nhập tên Project

3 Sau khi nhập tên Project người dùng nhấn Enter hoặc ấn vào nút CREATE

4 Hệ thống sẽ tạo một dự án cho người dùng

5 Sau khi tạo thành công dự, án hệ thống sẽ dẫn người dùng đến trang dự án vừa tạo và set quyền owner cho người tạo

6 Sau khi tạo owner có quyền vào setting và ấn nút xóa

1 Người dùng đăng nhập vào hệ thống

2 Người dùng không nhập tên Project hoặc chỉ nhập dấu cách rồi nhấn Enter hoặc ấn nút CREATE

3 Hệ thống alert tạo thất bại

Hình 4: Trang chủ mục tạo dự án mới

Hình 5: Dự án sau khi tạo

3.3.3.4 UC-US-02: Tham gia công việc

Tên Tham gia công việc Mã UC-US-02

Mô tả Cho phép Actor tham gia vào một dự án khác

Actor User, Admin Trigger Actor nhập id dự án và nhấn nút JOIN

Pre-condition Người dùng cần đăng nhập

Hệ thống sẽ đưa người dùng tới trang dự án với ID tương ứng

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Người dùng nhập ID Project

3 Sau khi nhập ID Project người dùng nhấn Enter hoặc ấn vào nút JOIN

4 Hệ thống sẽ đưa người dùng tới trang dự án với ID tương ứng

5 Hệ thống sẽ kiểm tra người dùng có trong danh bị đuổi của project và cho phép người dùng truy cập với role mặc định

1 Người dùng đăng nhập vào hệ thống

2 Người dùng nhập ID một Project không tồn tại

3 Hệ thống Alert không tìm thấy

Hình 6: Nhập ID để tham gia dự án

3.3.3.5 UC-US-02: Thêm, xóa, sửa công việc

Tên Thêm, xóa, sửa công việc Mã UC-US-02

Mô tả Cho phép Actor thêm công việc và xóa, sửa các công việc đó

Actor User, Admin Trigger Actor vào trang dự án

Pre-condition Người dùng cần đăng nhập

Hệ thống sẽ update dữ liệu công việc tất cả người dùng đang connect

Basic Flow 6 Người dùng đăng nhập vào hệ thống

7 Người dùng truy cập vào một dự án

8 Người dùng nhấn vào icon dấu cộng để tạo công việc, nhấn vào icon thùng rác để sửa và nhấn vào tiêu đề để chỉnh sửa

9 Sau khi thao tác, danh sách các công việc sẽ được hệ thống update và chạy socket đồng bộ lại dữ liệu giữa các người dùng đang kết nối

3.3.3.6 UC-US-03: Bình luận về công việc

Tên Bình luận về công việc Mã 3.3.3.5 UC-US-03

Mô tả Cho phép Actor tham gia bình luận về công việc

Actor User, Admin Trigger Người dùng vào công việc và bình luận

Pre-condition Người dùng cần đăng nhập

Bình luận mới sẽ được Socket cập nhật realtime với tất cả người dùng đang connect

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Người dùng truy cập vào một dự án

3 Người dùng nhấn vào tiêu đề của một công việc muốn bình luận

4 Người dùng nhập bình luận và ấn nút Add Comment

5 Hệ thống sẽ cập nhật bình luận realtime trên tất cả người dùng đang kết nối

1 Người dùng đăng nhập vào hệ thống

2 Người dùng truy cập vào một dự án

3 Người dùng nhấn vào tiêu đề của một công việc muốn bình luận

4 Người dùng không nhập bình luận hoặc chỉ nhập dấu cách

5 Hệ thống không làm gì cả

Hình 8: Bình luận về dự án

3.3.3.7 UC-US-04: Thêm công việc nhỏ bên trong công việc

Tên Thêm công việc nhỏ bên trong công việc

Mô tả Cho phép Actor nhập thêm các danh sách công việc nhỏ bên trong công việc

Actor User, Admin Trigger Actor vào chi tiết công việc và thêm công việc nhỏ

Pre-condition Người dùng cần đăng nhập

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Người dùng truy cập vào một dự án

3 Người dùng nhấn vào tiêu đề của một công việc muốn thêm công việc nhỏ

4 Người dùng nhập nội dung các công việc nhỏ và ấn nút SAVE để lưu

Hình 9: các công việc nhỏ bên trong công việc

3.3.3.8 UC-US-05: Đánh dấu hoàn thành công việc

Tên Sinh viên điểm danh Mã UC-US-05

Mô tả Cho phép Actor đánh dấu hoàn thành công việc được giao

Actor User, Admin Trigger Actor nhấn vào checkbox kế bên DueDate

Pre-condition Người dùng cần đăng nhập

Công việc sẽ có label complete

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Người dùng truy cập vào một dự án

3 Người dùng nhấn vào tiêu đề của một công việc muốn đánh dấu hoàn thành

4 Check vào checkbox ở DueDate rồi ấn nút SAVE

Hình 10: Đánh dấu hoàn thành công việc

Hình 11: Label complete cho công việc đã hoàn thành

3.3.3.9 UC-US-06: Di chuyển công việc từ Lane này sang Lane khác

Tên Di chuyển công việc từ

Lane này sang Lane khác

Mô tả Cho phép Actor xin nghỉ có phép tại một lớp học nào đó

Actor User, Admin Trigger Actor nhấn giữ một công việc và kéo sang Lane khác

Pre-condition Người dùng cần đăng nhập

Hệ thống realtime đồng bộ dữ liệu giữa các người dùng

Basic Flow 1 Người dùng đăng nhập vào hệ thống

2 Người dùng truy cập vào một dự án

3 Người dùng nhấn giữ một công việc ở Lane này và kéo sang Lane khác hoặc thay đổi vị trí trong Lane

4 Hệ thống sẽ realtime update lại thay đổi tới tất cả người dùng khác đang kết nối

Hình 12: Nắm giữ di chuyển vị trí công việc

3.3.4 Yêu cầu phi chức năng

Hệ thống cần hướng dẫn và demo cho giảng viên tầm 15-20 phút là có thể sử dụng tốt được toàn bộ chức năng mà hệ thống cung cấp

Thời gian đáp ứng dưới 1 giây

Hỗ trợ trọn đời ứng dụng

 Sử dụng Chrome/Firefox (Phiên bản mới nhất nếu có thể)

 Không hỗ trợ Internet Explorer

Bản quyền ứng dụng thuộc người phát triển, mọi sao chép phải nhận được sự đồng ý

XÂY DỰNG CHƯƠNG TRÌNH

Ràng buộc kỹ thuật

Hệ thống

Hình 13: Sơ đồ miêu tả hệ thống

Hệ thống gồm có 4 phần:

 (1) - Client giao diện hiển thị của trang web sẽ do React đảm nhận

 (2) – Server giao tiếp API với Frontend chính là Express

 (3) – Database cung cấp dữ liệu là MongoDB được đặt trên Cloud

 (4) – Server SocketIo sẽ đảm nhận các tác vụ Realtime, đồng bộ dữ liệu hiển thị với nhiều Client

Thiết kế, mô tả database

Hình 14: Các collections của Database

Database gồm những collection sau:

Tên field Mô tả Kiểu dữ liệu Ghi chú id Được tạo tự động ObjectId name Tên hiển thị của

String required owner Chủ sở hữu

ObjectId required members Danh sách thành viên trong Project

Array of ObjectId lanes Danh sách các cột chứa công việc trong Project

41 roles Các quyền của các thành viên trong Project

Array of ObjectId removedMembers Danh sách các member bị đuổi khỏi Project

Array of ObjectId createAt Ngày Project được tạo ra

Date Mặc định là thời gian hiện tại

4.2.2.2 Lane (Cột chứa công việc)

Tên field Mô tả Kiểu dữ liệu Ghi chú id Được tạo tự động ObjectId title Tiêu đề của cột String required color Màu sắc trên header của cột

Có giá trị default tasks Danh sách các công việc

Array of ObjectId createAt Ngày Project được tạo ra

Date Mặc định là thời gian hiện tại

4.2.2.3 Task (Công việc được giao)

Tên field Mô tả Kiểu dữ liệu Ghi chú id Được tạo tự động

ObjectId creator Người giao công việc

ObjectId required assignees Lớp của giáo viên nào

Array of Object name Tên của công việc

String required description Miêu tả, chú thích công việc

String deliveryDate Ngày công việc được giao

Date required mặc định lấy ngày hiện tại dateAccept Ngày công việc được nhận

Date dueDate Ngày hết hạn công việc

Date required difficult Độ khó của công việc

1: Rất dễ 2: Dễ 3: Bình thường 4: Khó

5: Rất khó list List các mini task bên trong Công việc

Array complete Hoàn thành Boolean required

4.2.2.4 Roles (Quyền, vai trò trong Project)

The article outlines a data structure with key fields: "id," which is an automatically generated ObjectId; "user," representing the user as an ObjectId and marked as required; "level," indicating the role's level as a Number; and "createAt," which denotes the creation date of the project.

Date Mặc định là thời gian hiện tại

Tên field Mô tả Kiểu dữ liệu Ghi chú id Được tạo tự động ObjectId oauth2Id Id Oauth2 String required email email String password Mật khẩu String

43 username Tên người dùng String required avatar Ảnh đại diện người dùng

String pushSubscription Subscription để đẩy thông báo

Object notifications Danh sách các thông báo cho người dùng

Object isAdmin Có phải là

Boolean Mặc định là false createAt Ngày Project được tạo ra

Date Mặc định là thời gian hiện tại

4.2.2.6 Comment (Bình luận của công việc)

Tên field Mô tả Kiểu dữ liệu Ghi chú id Được tạo tự động

ObjectId sender Người bình luận ObjectId content Nội dung bình luận

String required time Thời gian bình luận

Mặc định là thời gian hiện tại taskId ID của công việc được bình luận

4.2.2.7 History (Lịch sử xóa của dự án)

Tên field Mô tả Kiểu dữ liệu Ghi chú id Được tạo tự động

ObjectId user Người dùng thực hiện việc xóa

ObjectId required content Nội dung về việc xóa

String required time Thời gian bình luận

Mặc định là thời gian hiện tại projectId ID của dự án ObjectId required

4.2.3 Danh sách các route API xử lý tại Server Đây là các route API để cho Frontend gửi request để lấy dữ liệu

The project routes handle requests related to various components, including projects, lanes, tasks, roles, users, and subscriptions Specifically, the /project route manages project-related requests, while the /lane route addresses lane-specific inquiries The /task route processes requests concerning tasks, and the /role route deals with role-related matters Additionally, the /user route is dedicated to user-related requests, and the /subscription route manages subscription inquiries Each route is designed to efficiently receive and process relevant requests within its specific domain.

Phát triển hệ thống

01/2021 Phân tích và dựng các Model cho cơ sở dữ liệu

02/2021 Phát triển các API cơ bản thêm, xóa, sửa các Model

03/2021 Xây dựng giao diện Frontend cho trang quản lý công việc 04/2021 Phát triển thêm các chức năng đẩy thông báo, tạo biểu đồ thống kê

05/2021 Tính hợp SocketIo để xử lý realtime đồ bộ dữ liệu giữa nhiều người dùng 06/2021 Kiểm thử, sửa lỗi và viết báo cáo.

Trải nghiệm hệ thống thực tế

Một vài ảnh chụp màn hình hệ thống khi sử dụng thực tế

Hình 15: Màn hình đăng nhập

Hình 16: Giao diện trang chủ

Hình 17: Giao diện trang Admin

Hình 18: Giao diện Board của dự án

Hình 19: Giao diện thêm công việc

Hình 20: Giao diện thêm Lane

Hình 21: Giao diện chi tiết công việc

Hình 22: Màn hình xem danh sách công việc dạng Table

Hình 23: Màn hình Chart của dự án

Hình 24: Màn hình thông báo

Hình 25: Màn hình Setting của owner

Hình 26: Màn hình lịch sử xóa của dự án

Kiểm thử ứng dụng

Việc kiểm thử hệ thống được tiến hành như sau:

4.5.1 Kiểm thử chức năng ứng dụng

Kiểm thử được tiến hành sau khi hoàn thành từng chức năng và được kiểm tra tổng quát trước khi thực hiện các tính năng realtime Các chức năng này sẽ được kiểm tra trên 2-3 trình duyệt cùng lúc.

- Tạo Task và check push notification

- Tạo task và check notification 1 có task mới

- Tạo task và check notification 1 ngày trước khi hết hạn

- Tạo task và check notification 1 giờ trước khi hết hạn

- Tạo các mini task trong Task

- Check hoàn thành Task và xem biểu đồ hiển thị đúng

- Thay đổi quyền admin User

4.5.2 Kiểm thử hiệu năng ứng dụng

Quá trình kiểm tra hiệu năng hệ thống như sau:

- Kiểm tra tốc độ xử lý của thêm, xóa, sửa các project, lane, task, user bảo đảm dưới 1s (điều kiện ổn định)

- Kiểm tra các xử lý realtime đồng bộ dữ liệu dưới 3s

Ngày đăng: 13/10/2023, 15:35

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] “Introduction to Push Notifications | Web | Google Developers,” Google. [Online]. Available: https://developers.google.com/web/ilt/pwa/introduction-to-push-notifications Sách, tạp chí
Tiêu đề: Introduction to Push Notifications | Web | Google Developers
Tác giả: Google
Nhà XB: Google
[3] “Mongoose,” Mongoose ODM v5.13.3. [Online]. Available: https://mongoosejs.com/ Sách, tạp chí
Tiêu đề: Mongoose
Năm: 5.13.3
[4] “Node.js web application framework,” Express. [Online]. Available: https://expressjs.com/ Sách, tạp chí
Tiêu đề: Node.js web application framework
Tác giả: Express
[5] “React – A JavaScript library for building user interfaces,” – A JavaScript library for building user interfaces. [Online]. Available: https://reactjs.org/ Sách, tạp chí
Tiêu đề: React – A JavaScript library for building user interfaces
[6] S. Shanmugam, “Add Google Login to your React Apps in 10 mins,” DEV Community, 26-Oct-2020. [Online]. Available: https://dev.to/sivaneshs/add- google-login-to-your-react-apps-in-10-mins-4del Sách, tạp chí
Tiêu đề: Add Google Login to your React Apps in 10 mins
Tác giả: S. Shanmugam
Nhà XB: DEV Community
Năm: 2020
[7] “UI: A popular React UI framework,” Material. [Online]. Available: https://material-ui.com/ Sách, tạp chí
Tiêu đề: UI: A popular React UI framework
Tác giả: Material
Nhà XB: Material UI SAS
Năm: 2025
[1] D. Arrachequesne, Socket.IO, 16-Jul-2021. [Online]. Available: https://socket.io/ Link

HÌNH ẢNH LIÊN QUAN

Sơ đồ 2: Quy trình tham gia Project - Phát triển ứng dụng web quản lý công việc
Sơ đồ 2 Quy trình tham gia Project (Trang 16)
Sơ đồ 3: Quy trình thêm người dùng khác vào Project - Phát triển ứng dụng web quản lý công việc
Sơ đồ 3 Quy trình thêm người dùng khác vào Project (Trang 18)
Hình 2: Form chỉnh sửa user - Phát triển ứng dụng web quản lý công việc
Hình 2 Form chỉnh sửa user (Trang 39)
Hình 3: Trang quản lý dự án - Phát triển ứng dụng web quản lý công việc
Hình 3 Trang quản lý dự án (Trang 40)
Hình 4: Trang chủ mục tạo dự án mới - Phát triển ứng dụng web quản lý công việc
Hình 4 Trang chủ mục tạo dự án mới (Trang 41)
Hình 6: Nhập ID để tham gia dự án - Phát triển ứng dụng web quản lý công việc
Hình 6 Nhập ID để tham gia dự án (Trang 42)
Hình 7: Trang dự án - Phát triển ứng dụng web quản lý công việc
Hình 7 Trang dự án (Trang 43)
Hình 12: Nắm giữ di chuyển vị trí công việc - Phát triển ứng dụng web quản lý công việc
Hình 12 Nắm giữ di chuyển vị trí công việc (Trang 47)
Hình 18: Giao diện Board của dự án - Phát triển ứng dụng web quản lý công việc
Hình 18 Giao diện Board của dự án (Trang 56)
Hình 19: Giao diện thêm công việc - Phát triển ứng dụng web quản lý công việc
Hình 19 Giao diện thêm công việc (Trang 57)
Hình 20: Giao diện thêm Lane - Phát triển ứng dụng web quản lý công việc
Hình 20 Giao diện thêm Lane (Trang 58)
Hình 21: Giao diện chi tiết công việc - Phát triển ứng dụng web quản lý công việc
Hình 21 Giao diện chi tiết công việc (Trang 59)
Hình 22: Màn hình xem danh sách công việc dạng Table - Phát triển ứng dụng web quản lý công việc
Hình 22 Màn hình xem danh sách công việc dạng Table (Trang 60)
Hình 23: Màn hình Chart của dự án - Phát triển ứng dụng web quản lý công việc
Hình 23 Màn hình Chart của dự án (Trang 60)
Hình 25: Màn hình Setting của owner - Phát triển ứng dụng web quản lý công việc
Hình 25 Màn hình Setting của owner (Trang 61)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w