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

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs

148 2 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 đề Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Tác giả Trần Phúc Khánh, Trần Quang Khánh
Người hướng dẫn ThS. Nguyễn Minh Đạo
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 148
Dung lượng 13,8 MB

Cấu trúc

  • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (20)
  • 2. MỤC TIÊU CỦA ĐỀ TÀI (20)
  • 3. ĐỐI TƯỢNG NGHIÊN CỨU (21)
  • 4. PHẠM VI NGHIÊN CỨU (21)
  • 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN (21)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT (22)
    • 1.1. CÔNG NGHỆ SỬ DỤNG (22)
      • 1.1.1. Golang là gì ? (22)
      • 1.1.2. Gin Gonic (22)
      • 1.1.3. ReactJS (0)
      • 1.1.4. MySQL (24)
    • 1.2. MỘT SỐ THƯ VIỆN VÀ ỨNG DỤNG HỖ TRỢ KHÁC (24)
      • 1.2.1. TypeScript (24)
      • 1.2.2. Redux (25)
      • 1.2.3. Docker (26)
      • 1.2.4. Redis (27)
  • CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM (29)
    • 2.1. KHẢO SÁT HIỆN TRẠNG (29)
      • 2.1.1. Jira (29)
      • 2.1.2. Trello (30)
      • 2.1.3. Notion (32)
    • 2.3. ĐẶC TẢ YÊU CẦU ĐỀ TÀI (34)
      • 2.3.1. Mô tả tổng quát đề tài (34)
      • 2.3.2. Thông tin đề tài và công nghệ sử dụng (34)
      • 2.3.3. Yêu cầu chức năng (34)
        • 2.3.3.1. Yêu cầu chức năng nghiệp vụ (34)
        • 2.3.3.2. Yêu cầu chức năng hệ thống (36)
      • 2.3.4. Yêu cầu phi chức năng (37)
  • CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (38)
    • 3.1. TÁC NHÂN HỆ THỐNG (38)
    • 3.2. LƯỢC ĐỒ USE CASE (39)
      • 3.2.1. Mô tả Use Case của hệ thống (40)
      • 3.2.2. Đăng ký (44)
      • 3.2.3. Đăng nhập (45)
      • 3.2.4. Đăng xuất (47)
      • 3.2.5. Xem thông tin cá nhân (47)
      • 3.2.6. Chỉnh sửa thông tin cá nhân (48)
      • 3.2.7. Thay đổi mật khẩu (49)
      • 3.2.8. Quên mật khẩu (50)
      • 3.2.9. Xem danh sách dự án (51)
      • 3.2.10. Xem chi tiết dự án (52)
      • 3.2.11. Tìm kiếm dự án (53)
      • 3.2.12. Xem danh sách các dự án yêu thích (53)
      • 3.2.13. Thêm dự án vào mục yêu thích (54)
      • 3.2.14. Loại bỏ dự án khỏi mục yêu thích (55)
      • 3.2.15. Xem danh sách các thành viên của dự án (56)
      • 3.2.17. Mời thành viên (58)
      • 3.2.18. Tham gia dự án (59)
      • 3.2.19. Loại bỏ thành viên (60)
      • 3.2.20. Chuyển quyền sở hữu dự án (61)
      • 3.2.21. Rời dự án (62)
      • 3.2.22. Xem List Task của dự án (63)
      • 3.2.23. Thêm công việc trên List Task (64)
      • 3.2.24. Chỉnh sửa công việc trên List Task (65)
      • 3.2.25. Xóa công việc trên List Task (66)
      • 3.2.26. Gán thành viên cho công việc trong dự án (67)
      • 3.2.27. Xem Kanban Board của dự án (68)
      • 3.2.28. Cập nhật trạng thái công việc trên Kanban Board (69)
      • 3.2.29. Thay đổi vị trí của công việc trên Kanban Board (0)
      • 3.2.30. Tạo công việc mới trên Kanban Board (71)
      • 3.2.31. Xem bình luận (72)
      • 3.2.32. Tạo bình luận (73)
      • 3.2.33. Phản hồi bình luận (74)
      • 3.2.34. Pin bình luận (75)
      • 3.2.35. Chỉnh sửa bình luận (75)
      • 3.2.36. Xóa bình luận (77)
      • 3.2.37. Xem danh sách tập tin (78)
      • 3.2.38. Thêm tập tin mới (78)
      • 3.2.39. Xóa tập tin (79)
      • 3.2.40. Tải xuống tập tin (80)
      • 3.2.41. Xem danh sách thông báo (81)
      • 3.2.42. Đọc thông báo (82)
      • 3.2.44. Xem Sprint Backlog (83)
      • 3.2.45. Tạo Sprint (84)
      • 3.2.46. Chỉnh sửa Sprint (85)
      • 3.2.47. Xóa Sprint (86)
      • 3.2.48. Bắt đầu Sprint (87)
      • 3.2.49. Kết thúc Sprint (88)
    • 3.3. LƯỢC ĐỒ ERD (89)
    • 3.4. LƯỢC ĐỒ CLASS DIAGRAM (0)
    • 3.5. LƯỢC ĐỒ TUẦN TỰ (0)
      • 3.5.1. Chức năng đăng nhập (0)
      • 3.5.2. Chức năng đăng ký (0)
      • 3.5.3. Chức năng chỉnh sửa thông tin cá nhân (0)
      • 3.5.4. Chức năng thay đổi mật khẩu (0)
      • 3.5.5. Chức năng quên mật khẩu (0)
      • 3.5.6. Chức năng xem danh sách dự án (0)
      • 3.5.7. Chức năng xem chi tiết dự án (0)
      • 3.5.8. Chức năng xem dự án yêu thích (0)
      • 3.5.9. Chức năng thêm dự án yêu thích (0)
      • 3.5.10. Chức năng loại bỏ dự án yêu thích (0)
      • 3.5.11. Chức năng xem danh sách thành viên dự án (0)
      • 3.5.12. Chức năng xem thông tin thành viên của dự án (0)
      • 3.5.13. Chức năng mời thành viên (0)
      • 3.5.14. Chức năng tham gia dự án (0)
      • 3.5.15. Chức năng loại bỏ thành viên (0)
      • 3.5.16. Chức năng chuyển quyền sở hữu dự án (0)
      • 3.5.17. Chức năng rời dự án (0)
      • 3.5.19. Chức năng thêm công việc (0)
      • 3.5.20. Chức năng chỉnh sửa công việc (0)
      • 3.5.21. Chức năng xóa công việc (0)
      • 3.5.22. Chức năng gán thành viên cho công việc (0)
      • 3.5.23. Chức năng xem Kanban Board (0)
      • 3.5.24. Chức năng cập nhật trạng thái công việc trên Kanban Board (0)
      • 3.5.25. Chức năng thay đổi vị trí công việc trên Kanban Board (0)
      • 3.5.26. Chức năng tạo công viêc trên Kanban (0)
      • 3.5.27. Chức năng xem bình luận (0)
      • 3.5.28. Chức năng tạo bình luận (0)
      • 3.5.29. Chức năng phản hồi bình luận (0)
      • 3.5.30. Chức năng ghim bình luận (0)
      • 3.5.31. Chức năng chỉnh sửa bình luận (0)
      • 3.5.32. Chức năng xóa bình luận (0)
      • 3.5.33. Chức năng xem danh sách tập tin (0)
      • 3.5.34. Thêm tập tin mới (0)
      • 3.5.35. Xóa tập tin (0)
      • 3.5.36. Xem danh sách thông báo (0)
      • 3.5.37. Đọc thông báo (0)
      • 3.5.38. Xóa thông báo (0)
      • 3.5.39. Xem Sprint Backlog (0)
      • 3.5.40. Tạo Sprint (0)
      • 3.5.41. Chỉnh sửa Sprint (0)
      • 3.5.42. Xóa Sprint (0)
      • 3.5.43. Bắt đầu Sprint (0)
  • CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU (114)
    • 4.1. LƯỢC ĐỒ CƠ SỞ DỮ LIỆU (114)
    • 4.2. MÔ TẢ DỮ LIỆU BẢNG (115)
  • CHƯƠNG 5: THIẾT KẾ GIAO DIỆN (122)
    • 5.1. MÀN HÌNH GIAO DIỆN CỦA THÀNH VIÊN (122)
      • 5.1.1. Giao diện trang đăng nhập (122)
      • 5.1.2. Giao diện trang đăng nhập bằng Google (0)
      • 5.1.3. Giao diện trang đăng ký (123)
      • 5.1.4. Giao diện trang Dashboard (123)
      • 5.1.5. Giao diện danh sách dự án (123)
      • 5.1.6. Giao diện trang chi tiết dự án (124)
      • 5.1.7. Giao diện thông tin cá nhân người dùng (124)
      • 5.1.8. Giao diện trang thông tin cá nhân thành viên dự án (125)
      • 5.1.9. Giao diện trang Attachments (125)
      • 5.1.10. Giao diện trang List Task (126)
      • 5.1.11. Giao diện trang chi tiết công việc (126)
      • 5.1.12. Giao diện tạo công việc (127)
      • 5.1.13. Giao diện trang chỉnh sửa công việc (127)
      • 5.1.14. Giao diện trang Kanban Board (128)
      • 5.1.15. Giao diện trang Sprint Backlog (của thành viên) (128)
      • 5.1.16. Giao diện trang thay đổi mật khẩu (129)
      • 5.1.17. Giao diện trang quên mật khẩu (129)
      • 5.1.18. Giao diện danh sách thông báo (130)
    • 5.2. MÀN HÌNH GIAO DIỆN CỦA NGƯỜI QUẢN LÝ DỰ ÁN (131)
      • 5.2.1. Giao diện trang Chi tiết dự án (131)
      • 5.2.3. Giao diện thay đổi người quản lý dự án (132)
      • 5.2.4. Giao diện trang quản lý Sprint Backlog (132)
      • 5.2.5. Giao diện tạo Sprint (133)
      • 5.2.6. Giao diện bắt đầu Sprint (133)
      • 5.2.7. Giao diện kết thúc Sprint (134)
  • CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ (135)
    • 6.1. YÊU CẦU HỆ THỐNG (135)
    • 6.2. CÁC BƯỚC CÀI ĐẶT (135)
    • 6.3. KIỂM THỬ (136)
      • 6.3.2. Phương pháp kiểm thử (136)
      • 6.3.3. Quy trình kiểm thử (136)
      • 6.3.4. Kết quả kiểm thử (136)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (146)
    • 2. ƯU ĐIỂM (4)
    • 3. NHƯỢC ĐIỂM (146)
    • 4. HƯỚNG PHÁT TRIỂN (146)
  • TÀI LIỆU THAM KHẢO (147)

Nội dung

Lược đồ tuần tự chức năng xem danh sách thành viên dự án .... Bảng đặc tả Usecase xem danh sách các thành viên của dự án .... Bảng đặc tả xem danh sách công việc của dự án trong List Tas

TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Với sự phát triển nhanh chóng của công nghệ thông tin và xu hướng làm việc trực tuyến, nhu cầu quản lý công việc một cách hiệu quả và linh hoạt đã trở nên cần thiết hơn bao giờ hết Một trang web quản lý công việc trực tuyến sẽ cung cấp một nền tảng tiên tiến giúp các nhóm làm việc phối hợp hiệu quả hơn dù ở bất kỳ đâu

Mô hình Agile Scrum là một phương pháp quản lý dự án linh hoạt, cho phép các nhóm làm việc tăng cường sự tương tác, cải tiến liên tục và phản hồi nhanh chóng Triển khai web quản lý công việc với mô hình này sẽ giúp các nhóm làm việc tổ chức, theo dõi và quản lý các công việc một cách trực quan và dễ dàng, từ đó tối ưu hóa quy trình làm việc và nâng cao năng suất

Do đó, việc xây dựng một trang web quản lý công việc trực tuyến theo mô hình Agile Scrum như iTask sẽ đáp ứng nhu cầu quản lý công việc ngày càng cao, tạo ra một môi trường làm việc hiệu quả và linh hoạt cho các nhóm làm việc, và mở ra cơ hội mới cho các nhà quản lý dự án và chuyên gia trong lĩnh vực này.

MỤC TIÊU CỦA ĐỀ TÀI

Mục tiêu chính của đề tài này là xây dựng một website quản lý công việc trực tuyến chuyên nghiệp và chất lượng, hỗ trợ người dùng dễ dàng theo dõi tiến độ công việc của dự án cũng như có thể kiểm tra các công việc hiện tại của bản thân

Bước đầu sẽ là phát triển một trang web cơ bản, cung cấp thông tin chi tiết về các dự án, giúp người dùng dễ dàng tham gia vào các dự án Tiếp theo, sẽ xây dựng hệ thống cho phép người dùng quản lý thông tin dự án, công việc và các thông tin khác liên quan Trang web cũng sẽ hỗ trợ các tính năng như bình luận, tải tài liệu lên cho dự án,…

Các mục tiêu cụ thể bao gồm:

- Tạo ra một giao diện người dùng thân thiện, trực quan và hấp dẫn, giúp người dùng dễ dàng tương tác và tạo các dự án trên website

Phần mở đầu nhân và dữ liệu của người dùng

- Tối ưu hóa hiệu suất và khả năng mở rộng của website, để đáp ứng số lượng người dùng ngày càng tăng và nhu cầu phát triển trong tương lai

- Đáp ứng các yêu cầu cơ bản của một trang web quản lý công việc, bao gồm khả năng truy cập danh sách dự án, tham gia dự án, quản lý công việc và quản lý thành viên dự án.

Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thành đề tài, nhóm đã học hỏi được thêm nhiều được nhiều kiến thức mới về hệ thống quản lý công việc và quy trình phát triển phần mềm.

CƠ SỞ LÝ THUYẾT

CÔNG NGHỆ SỬ DỤNG

Golang, hay Go, là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google Được ra mắt vào năm 2009, Go kết hợp hiệu suất cao của ngôn ngữ C với tính tiện dụng của các ngôn ngữ lập trình hiện đại Một trong những đặc điểm nổi bật của

Go là khả năng xử lý đồng thời mạnh mẽ, nhờ vào thiết kế goroutines và channels, giúp việc xây dựng các ứng dụng đa luồng trở nên dễ dàng và hiệu quả hơn

Go có cú pháp đơn giản và rõ ràng, giúp các lập trình viên dễ dàng học và sử dụng Nó cũng đi kèm với một bộ công cụ phát triển mạnh mẽ, bao gồm trình biên dịch nhanh, gói tiêu chuẩn phong phú và các công cụ quản lý phụ thuộc Golang đặc biệt thích hợp cho việc phát triển các ứng dụng web, dịch vụ microservices và hệ thống phân tán, với nhiều công ty lớn như Google, Uber và Dropbox đang sử dụng Go trong các sản phẩm của mình

Hình 2 Minh họa Gin Gonic

Gin là một framework phát triển ứng dụng web dựa trên ngôn ngữ lập trình Go (Golang) Được thiết kế để đơn giản hóa việc xây dựng các ứng dụng web nhanh chóng và hiệu quả, Gin cung cấp nhiều tính năng phổ biến như routing, middleware, xử lý JSON, xử lý lỗi và nhiều công cụ hỗ trợ phát triển khác Một trong những ưu điểm lớn của Gin là hiệu suất cao, nhờ vào việc được viết bằng Go, một ngôn ngữ lập trình tối ưu hóa cho hiệu suất xử lý

Gin sử dụng cấu trúc router nhanh và cơ chế pooling để quản lý các goroutine, giúp xử lý các yêu cầu một cách hiệu quả Điều này làm cho Gin trở thành lựa chọn lý tưởng cho các ứng dụng web cần xử lý lượng lớn yêu cầu đồng thời mà không làm giảm hiệu suất Bên cạnh đó, Gin cũng hỗ trợ việc xây dựng các ứng dụng web RESTful thông qua việc hỗ trợ đầy đủ các HTTP methods như GET, POST, PUT, DELETE

Ngoài ra, Gin cung cấp các cơ chế xử lý lỗi, xác thực và phân quyền, giúp xây dựng các ứng dụng web an toàn và hiệu năng cao Nhìn chung, Gin là một lựa chọn tuyệt vời cho việc phát triển các ứng dụng web trong Go, mang lại sự đơn giản, hiệu quả và hiệu suất cao cho các nhà phát triển

React (còn được biết đến với tên gọi React.js hoặc ReactJS) là một thư viện JavaScript mã nguồn mở, miễn phí, được phát triển bởi Facebook Inc và hiện được bảo trì bởi Meta (trước đây là Facebook) cùng với một cộng đồng các nhà phát triển và công ty cá nhân React được thiết kế để xây dựng các giao diện người dùng dựa trên các thành phần (components)

React có thể được sử dụng để phát triển các ứng dụng đơn trang (single-page), ứng dụng di động, hoặc các ứng dụng render trên server với sự hỗ trợ của các framework như Next.js Do React chỉ tập trung vào giao diện người dùng và việc render các thành phần lên DOM, các ứng dụng React thường dựa vào các thư viện khác cho việc định tuyến và các chức năng phía client khác Một lợi thế quan trọng của React là nó chỉ render lại những phần của trang đã thay đổi, tránh việc render lại không cần thiết các phần tử DOM không thay đổi

MySQL là một hệ quản trị cơ sở dữ liệu (DBMS) phổ biến và mã nguồn mở Nó được sử dụng rộng rãi trong phát triển ứng dụng web và nhiều hệ thống thông tin do tính ổn định, hiệu suất cao, và tính linh hoạt của nó MySQL hỗ trợ nhiều ngôn ngữ lập trình và cung cấp các tính năng mạnh mẽ để quản lý cơ sở dữ liệu.

MỘT SỐ THƯ VIỆN VÀ ỨNG DỤNG HỖ TRỢ KHÁC

TypeScript là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Microsoft Được xây dựng trên nền tảng JavaScript, TypeScript thêm vào các tính năng như kiểm tra kiểu tĩnh (static typing), các lớp (classes), và các giao diện (interfaces) Điều này giúp việc phát triển và bảo trì các dự án lớn trở nên dễ dàng hơn và giảm thiểu lỗi Điểm khác biệt chính giữa TypeScript và JavaScript là TypeScript cho phép các developers xác định kiểu dữ liệu cho biến, hàm và các thực thể khác Điều này giúp phát hiện sớm các lỗi liên quan đến kiểu dữ liệu trong quá trình phát triển, thay vì chờ đến lúc chạy chương trình Bên cạnh đó, TypeScript cũng hỗ trợ các tính năng hiện đại của JavaScript và các tính năng lập trình hướng đối tượng như kế thừa, đóng gói, và đa hình

Các đặc điểm nổi bật của TypeScript bao gồm:

● Kiểm tra kiểu tĩnh (Static Typing): Giúp phát hiện lỗi sớm trong quá trình phát triển

● Hỗ trợ các tính năng mới của JavaScript: TypeScript liên tục cập nhật và hỗ trợ các tính năng mới của JavaScript

● Tương thích với JavaScript: Mã TypeScript được chuyển đổi (transpile) thành JavaScript để chạy trên bất kỳ môi trường nào hỗ trợ JavaScript

● Cải thiện khả năng bảo trì và mở rộng: Các tính năng như classes và interfaces giúp việc xây dựng các ứng dụng lớn trở nên dễ dàng và có cấu trúc hơn

● Hỗ trợ các công cụ phát triển: TypeScript tích hợp tốt với các IDE và công cụ như Visual Studio Code, cung cấp tính năng tự động hoàn thành mã, gợi ý mã, và kiểm tra lỗi trong thời gian thực

Redux là một thư viện quản lý trạng thái cho các ứng dụng JavaScript, thường được sử dụng cùng với các thư viện hoặc framework như React hoặc Angular để quản lý trạng thái ứng dụng một cách nhất quán và dễ dàng Được tạo ra bởi Dan Abramov và Andrew Clark, Redux giúp quản lý trạng thái của ứng dụng một cách trung tâm, giúp tránh các vấn đề phức tạp liên quan đến truyền dữ liệu giữa các thành phần

● Action: Người dùng hoặc hệ thống thực hiện một hành động (action), ví dụ: thêm một mục vào giỏ hàng

● Reducer: Action được gửi đến một reducer, nơi trạng thái mới của ứng dụng được tính toán dựa trên action đó

● Store: Trạng thái mới được lưu trữ trong store trung tâm

● View: Các thành phần giao diện người dùng được cập nhật để phản ánh trạng thái mới

Docker là một nền tảng mã nguồn mở cho phép các nhà phát triển xây dựng, triển khai, chạy, cập nhật và quản lý các container Docker được viết bằng ngôn ngữ lập trình Go và tận dụng nhiều tính năng của Kernel Linux Docker sử dụng một công nghệ gọi là namespaces để cung cấp “vùng hoạt động” gọi là container Khi bạn chạy một container, Docker tạo ra một tập hợp các namespaces cho container đó

Containers là các thành phần thực thi tiêu chuẩn hóa, kết hợp mã nguồn của ứng dụng với các thư viện và các phụ thuộc của hệ điều hành (OS) cần thiết để chạy mã đó trong bất kỳ môi trường nào Công nghệ container cung cấp tất cả các chức năng và lợi ích của máy ảo (VMs) – bao gồm cách ly ứng dụng và khả năng mở rộng hiệu quả về chi phí, cùng với nhiều ưu điểm khác:

● Nhẹ hơn: Không giống như VMs, containers không mang theo toàn bộ hệ điều hành và hypervisor Chúng chỉ bao gồm các quy trình và phụ thuộc của hệ điều hành cần thiết để chạy mã Kích thước của container được đo bằng megabyte (so với gigabyte của một số VMs), sử dụng tốt hơn dung lượng phần cứng và có thời gian khởi động nhanh hơn

● Năng suất cải thiện: Các ứng dụng container hóa có thể được viết một lần và chạy ở bất kỳ đâu So với VMs, containers triển khai, cung cấp và khởi động lại nhanh chóng và dễ dàng hơn

● Hiệu quả cao hơn: Với containers, các nhà phát triển có thể chạy nhiều bản sao của một ứng dụng trên cùng một phần cứng hơn so với khi sử dụng VMs Hiệu quả này có thể giảm chi phí sử dụng dịch vụ đám mây Docker giúp đơn giản hóa quá trình phát triển và triển khai ứng dụng bằng cách cho phép các developers đóng gói ứng dụng và các phụ thuộc của nó vào một container duy nhất có thể chạy nhất quán trên các môi trường khác nhau, từ máy phát triển cá nhân đến các máy chủ trong trung tâm dữ liệu hoặc đám mây

Redis là một hệ thống cơ sở dữ liệu mã nguồn mở, được thiết kế để lưu trữ và xử lý dữ liệu trong bộ nhớ (in-memory data structure store) Nó hỗ trợ nhiều loại dữ liệu cấu trúc như chuỗi, băm (hashes), danh sách, tập hợp và các kiểu dữ liệu khác Redis nổi bật với tốc độ truy xuất nhanh và khả năng mở rộng tốt, làm cho nó trở thành một giải pháp phổ biến cho các ứng dụng yêu cầu hiệu suất cao và độ phản hồi nhanh Các chức năng chính của Redis bao gồm:

● Lưu trữ dữ liệu cấu trúc: Redis hỗ trợ nhiều loại dữ liệu phức tạp như chuỗi, băm, danh sách, tập hợp, đồng thời cung cấp các thao tác phù hợp để thao tác với từng loại dữ liệu này

Caching: Redis thường được sử dụng làm lớp cache để lưu trữ dữ liệu tạm thời trong bộ nhớ, giúp cải thiện tốc độ truy xuất dữ liệu từ hệ thống lưu trữ chính

● Message Broker: Redis hỗ trợ các cấu trúc dữ liệu như hàng đợi (queue) và kênh thông báo (pub/sub) để xử lý các thông báo và sự kiện trong hệ thống

● Đa luồng và bảo mật: Redis hỗ trợ các thao tác đa luồng và cơ chế bảo mật, cho phép quản lý truy cập dữ liệu và giới hạn các thao tác trên cơ sở dữ liệu

● Replication và High Availability: Redis cung cấp khả năng sao chép dữ liệu (replication) và các cơ chế để đảm bảo sẵn sàng cao (high availability) của hệ thống

Redis được sử dụng rộng rãi trong các ứng dụng web, điện toán đám mây và các hệ thống phân phối nơi nhu cầu về hiệu suất và khả năng mở rộng cao.

KHẢO SÁT HIỆN TRẠNG VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM

KHẢO SÁT HIỆN TRẠNG

Website: https://www.atlassian.com/software/jira

Jira là một nền tảng quản lý dự án và theo dõi công việc nổi tiếng, được sử dụng rộng rãi trên toàn cầu Jira được thiết kế để hỗ trợ các nhóm Agile Scrum và Kanban trong việc lập kế hoạch, theo dõi và quản lý các dự án phần mềm phức tạp Ưu điểm:

- Đa dạng chức năng quản lý dự án: Jira cung cấp nhiều công cụ mạnh mẽ để quản lý backlog, lập kế hoạch sprint, và theo dõi tiến độ công việc Điều này giúp các nhóm làm việc có thể tổ chức và quản lý dự án một cách hiệu quả

- Khả năng tùy chỉnh cao: Jira cho phép người dùng tùy chỉnh các bảng Kanban và Scrum, quy trình làm việc, và các trường thông tin để phù hợp với nhu cầu cụ thể của từng dự án

- Tích hợp mạnh mẽ: Jira tích hợp với nhiều công cụ khác như Confluence, các nhóm làm việc có một hệ sinh thái công cụ hoàn chỉnh

- Giao diện trực quan: Giao diện của Jira được thiết kế để dễ dàng sử dụng và trực quan, giúp người dùng nhanh chóng làm quen và sử dụng hiệu quả

- Độ phức tạp cao: Đối với những người mới bắt đầu, Jira có thể khá phức tạp và cần thời gian để làm quen Sự đa dạng và phức tạp của các tính năng có thể gây khó khăn cho người dùng không chuyên

- Chi phí cao: Mặc dù Jira cung cấp gói miễn phí cho các nhóm nhỏ, nhưng các gói trả phí cho các tổ chức lớn hoặc nhu cầu cao có thể rất đắt đỏ, không phù hợp với mọi ngân sách

- Hiệu suất đôi khi không ổn định: Một số người dùng báo cáo rằng Jira có thể gặp vấn đề về hiệu suất khi xử lý các dự án lớn hoặc khi có nhiều người dùng truy cập cùng lúc

Hình 6 Trang web Trello Ưu điểm:

- Giao diện dễ sử dụng: Trello được thiết kế với giao diện đơn giản, trực quan, dễ dàng sử dụng ngay cả đối với người dùng mới

- Tính linh hoạt và linh động: Trello cho phép người dùng tổ chức công việc bằng các thẻ (cards), bảng (boards), danh sách (lists), giúp dễ dàng quản lý các dự án và công việc theo các phương pháp quản lý khác nhau

- Tích hợp nhiều tính năng hữu ích: Bao gồm lịch biểu, nhắc nhở, bình luận, đính kèm tập tin, chia sẻ dự án, và các tính năng tùy chỉnh bổ sung thông qua Power-Ups

- Tính đa nền tảng: Trello hỗ trợ đa nền tảng, cho phép người dùng truy cập và làm việc từ các thiết bị khác nhau như máy tính, điện thoại di động, và máy tính bảng

- Thiếu tính năng quản lý Sprint và backlog rõ ràng: Trello không có các tính năng Scrum như quản lý Sprint và backlog một cách tự nhiên như các công cụ quản lý dự án chuyên biệt hơn như Jira Việc phải tạo và duy trì các danh sách và thẻ để đại diện cho Sprint và backlog có thể làm giảm tính hiệu quả và sự rõ ràng của quản lý Scrum

- Khó khăn trong việc theo dõi tiến độ và báo cáo chi tiết: Trello cung cấp các công cụ quản lý công việc cơ bản nhưng thiếu các tính năng phức tạp hơn như báo cáo tự động, biểu đồ burndown và các đánh giá hiệu suất Scrum Điều này có thể làm cho việc theo dõi tiến độ và phân tích hiệu suất của nhóm Scrum trở nên khó khăn hơn

- Độ phức tạp khi dự án lớn và phức tạp: Với các dự án lớn và phức tạp, cấu trúc và quản lý công việc trong Trello có thể trở nên phức tạp hơn do thiếu tính năng quản lý workflow và quản lý tài nguyên chi tiết, như trong các công cụ quản lý dự án chuyên biệt

- Giới hạn trong tính tương tác và hỗ trợ: Mặc dù Trello có thể tích hợp với nhiều ứng dụng và dịch vụ khác, nhưng việc tích hợp và hỗ trợ cho các yêu cầu phức tạp của Scrum (như quản lý phức tạp hơn các quy trình và workflow) có thể không linh hoạt như các công cụ chuyên biệt khác

Notion là một ứng dụng đa năng cho phép người dùng tạo ra các bảng điều khiển cá nhân hoặc nhóm để quản lý công việc, lập kế hoạch, ghi chép, tổ chức dữ liệu và hợp tác Đây là một công cụ linh hoạt và được sử dụng rộng rãi để quản lý thông tin cá nhân và công việc

Hình 7 Trang web Notion Ưu điểm:

ĐẶC TẢ YÊU CẦU ĐỀ TÀI

2.3.1 Mô tả tổng quát đề tài Ứng dụng được xây dựng nhằm tạo ra một nền tảng phục vụ cho cá nhân hoặc doanh nghiệp nhỏ có nhu cầu quản lý công việc trực tuyến đồng thời cung cấp các tính năng giúp cho trải nghiệm quản lý công việc hiệu quả và tiện lợi hơn

2.3.2 Thông tin đề tài và công nghệ sử dụng

- Tên ứng dụng: Website quản lý công việc iTask

2.3.3.1 Yêu cầu chức năng nghiệp vụ

STT Yêu cầu nghiệp vụ Loại yêu cầu Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Xem danh sách tất cả dự án Tra cứu

3 Xem thông tin chi tiết dự án Tra cứu

4 Xem những dự án yêu thích Tra cứu

5 Xem dach sách công việc Tra cứu

6 Xem danh sách thành viên của dự án Tra cứu

7 Xem danh sách tập tin Tra cứu

8 Xem Sprint Backlog Tra cứu

9 Quản lý tài khoản Lưu trữ

10 Thêm dự án Lưu trữ

11 Thêm, hủy những dự án yêu thích Lưu trữ

12 Quản lý công việc tên List Task Lưu trữ

13 Quản lý công việc trên Kanban Board Lưu trữ

14 Gán, hủy gán người thực hiện công việc Lưu trữ

15 Thêm, xóa, tải xuống các tập tin lưu trữ Lưu trữ

16 Quản lý bình luận Lưu trữ

17 Quản lý thông báo Lưu trữ

Bảng 1 Bảng mô tả yêu cầu chức năng của hệ thống người dùng thành viên

Bộ phận người quản lý dự án

STT Yêu cầu nghiệp vụ Loại yêu cầu Ghi chú

1 Mời thành viên Tra cứu

2 Loại bỏ thành viên Tra cứu

3 Chuyển quyền sở hữu dự án Tra cứu

4 Sửa dự án Lưu trữ

5 Xóa dự án Lưu trữ

6 Thêm, sửa, xóa Sprint Tra cứu

7 Bắt đầu, kết thúc Sprint Lưu trữ

Bảng 2 Bảng mô tả yêu cầu chức năng của hệ thống phía người quản lý dự án

2.3.3.2 Yêu cầu chức năng hệ thống

STT Yêu cầu hệ thống Mô tả Ghi chú

1 Chức năng phân quyền Phân quyền gồm có guest, member và project owner

2 Chức năng xác thực Xác thực phía người dùng thông qua email

3 Chức năng khôi phục mật khẩu Khôi phục thông qua gửi đường dẫn xác thực qua email

4 Chức năng nhận thông báo mới Thông báo được lưu trữ và phân phối qua Message Broker

Bảng 3 Bảng mô tả yêu cầu chức năng của hệ thống

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

STT Yêu cầu phi chức năng Loại yêu cầu Ghi chú

1 Giao diện thân thiện với người dùng Tính tiện dụng

2 Tốc độ xử lý và tìm kiếm nhanh chóng, chính xác

3 Thông tin cá nhân của người dùng được bảo mật và mã hóa

4 Dễ dàng mở rộng quy mô Tính tiến hóa

Bảng 4 Bảng mô tả yêu cầu phi chức năng

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

TÁC NHÂN HỆ THỐNG

Hệ thống website quản lý dự án gồm 2 actor: Thành viên (Member) và người quản lý dự án (Project Owner)

- Member: là người dùng đã đăng ký với hệ thống, xem dự án, xem danh mục dự án, tìm kiếm dự án, quản lý danh mục dự án yêu thích, tham gia quản lý công việc

- Project Owner: là người dùng đã đăng ký với hệ thống, xem dự án, chỉnh sửa thông tin dự án, xóa dự án, xem danh mục dự án, tìm kiếm dự án, quản lý danh mục dự án yêu thích, quản lý công việc, quản lý sprint.

LƯỢC ĐỒ USE CASE

Hình 9 Lược đồ Use Case

3.2.1 Mô tả Use Case của hệ thống

Role Tên Usecase Mô tả

Member jlkbejk Đăng ký Người dùng đăng ký tài khoản để có thể đăng nhập vào hệ thống. Đăng nhập Người dùng sử dụng tên đăng nhập và mật khẩu đã đăng ký để đăng nhập Hệ thống đối chiếu thông tin để xác thực người dùng. Đăng xuất Người dùng chọn nút “Log out” để đăng xuất thông tin tài khoản

Xem thông tin cá nhân

Người dùng có thể xem thông tin cá nhân của mình bằng cách chọn tính năng My Profile

Chỉnh sửa thông tin cá nhân

Người dùng có thể thay đổi các thông tin của mình sau khi vào trang xem chi tiết thông tin cá nhân

Người dùng có thể thay đổi mật khẩu hiện tại bằng mật khẩu mới

Quên mật khẩu Người dùng quên mật khẩu có thể tạo mật khẩu mới thông qua xác thực email

Xem danh sách dự án

Người dùng chọn mục All Project ở thanh navbar để hiển thị danh sách các dự án đã tham gia

Xem chi tiết dự án

Người dùng chọn trang danh sách dự án để xem danh sách tất cả các dự án đã tham gia

Tìm kiếm dự án Người dùng tìm kiếm sản phẩm thông qua thanh tìm kiếm ở màn hình danh sách dự án

Xem danh sách các dự án yêu thích

Người dùng có thể xem các dự án yêu thích trong danh sách dự án

Thêm dự án vào mục yêu thích

Người dùng thêm dự án vào mục yêu thích bằng cách nhấn vào nút “Favourite” tại trang chi tiết của dự án

Loại bỏ dự án khỏi mục yêu thích

Người dùng loại bỏ dự án khỏi mục yêu thích bằng cách nhấn vào nút “Unfavourite” tại trang chi tiết của dự án

Xem danh sách thành viên của dự án

Người dùng có thể xem danh sách thành viên của dự án tại trang chi tiết của dự án

Xem thông tin thành viên của dự án

Người dùng có thể xem thông tin thành viên của dự án bằng cách nhấn vào ảnh đại diện của thành viên

Tham gia dự án Người dùng có thể tham gia dự án qua email sau khi đã nhận được lời mời từ Project Owner

Rời dự án Người dùng có thể rời dự án bằng cách chọn “Leave

Xem List Task của dự án

Người dùng có thể xem danh sách công việc của dự án dạng List khi chọn tính năng List Task của dự án

Thêm công việc trên Lisk Task

Người dùng có thể thêm một công việc mới sau khi đã truy cập vào màn hình Lisk Task

Chỉnh sửa công việc trên List Task

Người dùng có thể chỉnh sửa công việc sau khi đã truy cập vào màn hình Lisk Task

Xóa công việc trên List Task

Người dùng có thể xóa công việc sau khi đã truy cập vào màn hình Lisk Task

Xem Kanban Board của dự án

Người dùng có thể xem danh sách công việc của dự án dạng Kanban khi chọn tính năng Kanban Board của dự án

Cập nhật trạng thái công việc trên Kanban Board

Người dùng có thể cập nhật trạng thái của công việc bằng các kéo thả công việc giữa các board

Thay đổi vị trí của công việc trên Kanban Board

Người dùng có thể thay đổi vị trí công việc bằng cách kéo tả công việc lên xuống trong board

Tạo công việc mới trên Kanban Board

Người dùng có thể tạo công việc nhanh bằng cách nhấn nút “Add More” phía dưới mỗi board

Xem bình luận Người dùng có thể xem các bình luận trên dự án và công việc

Tạo bình luận Người dùng có thể tạo bình luận mới trên dự án và công việc

Người dùng có thể phản hồi bình luận trên dự án và công việc

Người dùng có thể sửa, xóa hoặc ghim bình luận trên dự án và công việc

Xem danh sách tập tin

Người dùng có thể xem danh sách các tập tin đã tải lên cho công việc

Tải xuống tập tin Người dùng có thể tải xuống bất kỳ tập tin nào trong danh sách

Xem trước tập tin Người dùng có thể xem trước một tập tin trong danh sách Quản lý tập tin Người dùng có thể thêm, xóa tập tin

Xem Sprint Backlog của dự án

Người dùng có thể xem Sprint Backlog của dự án, có thể theo dõi tất cả các Sprint và các công việc trong Sprint

Người dùng có thể nhận thông báo từ các công việc liên quan đến bản thân, có thể đọc thông báo, xóa thông báo, xem những thông báo chưa đọc

Quản lý người thực hiện công việc

Người dùng có thể gán công việc cho bản thân hoặc người khác, có thể hủy gán công việc

Mời thành viên Project Owner có thể mời thành viên khác tham gia dự án

Project Owner có thể loại bỏ thành viên khỏi dự án

Chuyển quyền sở hữu dự án

Project Owner có thể chuyển quyền sở hữu dự án sang một thành viên khác trong dự án

Sửa dự án Project Owner có thể sửa thông tin của dự án

Xóa dự án Project Owner có thể xóa thông tin của dự án Quản lý Sprint

Project Owner có thể tạo Sprint mới, sửa thông tin Sprint và xóa Sprint

Bắt đầu và kết thúc Sprint

Project Owner có thể bắt đầu hoặc kết thúc một Sprint

Bảng 5 Bảng mô tả Usecase của hệ thống

Short Description Người dùng cần tạo tài khoản để đăng nhập và sử dụng các dịch vụ của website

Pre-Conditions Guest cần phải truy cập website và điền đầy đủ thông tin yêu cầu để thực hiện tạo tài khoản Post Conditions Guest tạo tài khoản thành công và đăng nhập được vào website

Main Flow (1) Người dùng truy cập vào website

(2) Người dùng chọn vào mục Sign In/Sign up

(3) Người dùng chọn Sign up

(4) Người dùng điền thông tin yêu cầu đầy đủ

(5) Người dùng chọn Register để xác nhận tạo tài khoản [A1] [E1]

(6) Hệ thống hiển thị thông báo đăng ký tài khoản thành công

(7) Chuyển hướng đến trang đăng nhập

Alternate Flow (A1) Guest huỷ đăng ký tài khoản và kết thúc quá trình

Exception Flow (E1) Nếu tài khoản email hoặc tên tài khoản đã tồn tại

(9) trong hệ thống thì quay lại bước (3)

Bảng 6 Bảng đặc tả Usecase đăng ký

Short Description Người dùng đăng nhập thông qua tài khoản đã đăng ký với hệ thống

Pre-Conditions Thông tin của người dùng phải tồn tại trong website

Post Conditions Người dùng đăng nhập thành công vào website

Main Flow (1) Người dùng truy cập vào website

(2) Người dùng chọn vào mục Sign In/Sign up

(3) Người dùng điền thông tin đăng nhập

(4) Người dùng nhấn chọn Sign in

(5) Hệ thống xác thực thông tin đăng nhập [E1]

(5) Hệ thống hiển thị thông báo đăng nhập thành công

(6) Chuyển hướng đến trang chủ Alternate Flow

Exception Flow (E1) Nếu tài khoản hoặc mật khẩu không hợp lệ thì quay lại bước (3)

Bảng 7 Bảng đặc tả Usecase đăng nhập

Short Description Người dùng đăng xuất, xoá phiên đăng nhập hiện tại

Pre-Conditions Người dùng đã đăng nhập thành công vào website

Post Conditions Người dùng đăng xuất thành công

Main Flow (1) Người dùng nhấn vào hình ảnh đại diện trên thanh

(2) Người dùng chọn vào mục Log out

(3) Hệ thống hiển thị thông báo Log out

(4) Hệ thống điều hướng người dùng đến trang đăng nhập [A1]

Alternate Flow (A1) Hệ thống không điều hướng người dùng nếu người dùng đang tại các trang Home, Search

Bảng 8 Bảng đặc tả Usecase đăng xuất

3.2.5 Xem thông tin cá nhân

Use case Xem thông tin cá nhân

Short Description Người dùng xem thông tin cá nhân của mình trên hệ thống

Pre-Conditions Người dùng đã đăng nhập thành công vào website

Post Conditions Người dùng xem thông tin cá nhân thành công

Main Flow (1) Người dùng nhấn vào hình ảnh đại diện trên thanh

(2) Người dùng chọn vào mục My profile

(3) Hệ thống điều hướng người dùng đến trang thông tin chi tiết cá nhân

Bảng 9 Bảng đặc tả Usecase xem thông tin cá nhân

3.2.6 Chỉnh sửa thông tin cá nhân

Use case Chỉnh sửa thông tin cá nhân

Short Description Người dùng đã đăng nhập vào website

Người dùng đã vào trang thông tin cá nhân Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập thành công vào website

Post Conditions Người dùng chỉnh sửa thông tin cá nhân thành công

Main Flow (1) Người dùng nhấn vào hình ảnh đại diện trên thanh Header

(2) Người dùng chọn vào mục My profile

(3) Hệ thống điều hướng người dùng đến trang thông tin chi tiết cá nhân

(4) Người dùng thực hiện điều chỉnh thông tin tên hiển thị, số điện thoại,…

(6) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu [E1]

(7) Hệ thống hiển thị thông báo đã cập nhật thông tin thành công

Alternate Flow (A1) Người dùng ấn chọn “Cancel”, không có thông tin nào được lưu

Exception Flow (E1) Người dùng nhập thông tin cá nhân sai định dạng quy định, quay lại bước (4)

Bảng 10 Bảng đặc tả Usecase chỉnh sửa thông tin cá nhân

Use case Thay đổi mật khẩu tài khoản

Short Description Người dùng có thể thay đổi mật khẩu tài khoản cá nhân Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã vào trang thông tin cá nhân Post Conditions Người dùng thay đổi mật khẩu thành công

Main Flow (1) Nhấn chọn “Change password”

(2) Nhập thông tin mật khẩu cũ, mật khẩu mới và xác nhận mật khẩu mới

(3) Người dùng nhấp chọn “Change password” [A1]

(4) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu [E1]

(5) Hệ thống hiển thị thông báo đã cập nhật thông tin thành công

Alternate Flow (A1) Người dùng ấn chọn “Cancel”, không có thông tin nào được lưu

Exception Flow (E1) Mật khẩu cũ sai, hoặc mật khẩu mới và xác nhận mật khẩu mới không hợp lệ, quay lại bước (2)

Bảng 11 Bảng đặc tả Usecase thay đổi mật khẩu

Use case Quên mật khẩu tài khoản

Short Description Người dùng quên mật khẩu đăng nhập và muốn thay mật khẩu mới Actors Member, Project Owner

Pre-Conditions Người dùng đã vào trang Log in

Post Conditions Người dùng đổi mật khẩu mới thành công

Main Flow (1) Người dùng nhấn chọn “Forgot password ? “

(3) Người dùng nhấn chọn “Send reset link” [A1] [E1]

(4) Hệ thống gửi gmail có chứa đường dẫn xác thực

(5) Người dùng nhấn đường link xác thực email [A2]

(6) Hệ thống chuyển tới trang nhập mật khẩu mới

(7) Người dùng nhập thông tin mật khẩu mới

(8) Nhấn chọn “Save new password” [A3] [E2]

(9) Hệ thống xác nhận và lưu thông tin xuống cơ sở dữ liệu

(10) Hệ thống chuyển đến màn hình thông báo thay đổi mật khẩu thành công

Alternate Flow (A1) Người dùng thoát trang quên mật khẩu, không có thông tin nào thay đổi

(A2) Người dùng không xác thực email, thời gian xác thực hết hạn, không có thông tin nào thay đổi

(A3) Người dùng không lưu mật khẩu mới, không có thông tin nào thay đổi

Exception Flow (E1) Email người dùng nhập không tồn tại trong hệ thống, không thể gửi email xác thực

(E2) Trường mật khẩu mới và xác nhận mật khẩu không khớp nhau, quay lại bước 7

Bảng 12 Bảng đặc tả Usecase quên mật khẩu

3.2.9 Xem danh sách dự án

Use case Xem sản phẩm

Short Description Người dùng có thể xem các dự án mà mình tham gia

Pre-Conditions Người dùng đã truy cập vào website

Post Conditions Người dùng xem được các dự án mà mình tham gia

Main Flow (1) Chọn danh sách dự án sau khi đã đăng nhập vào hệ thống

(2) Hệ thống hiển thị thông tin danh sách dự án mà người dùng hiện tại đang tham gia

Bảng 13 Bảng đặc tả Usecase xem danh sách dự án

3.2.10 Xem chi tiết dự án

Use case Xem chi tiết dự án

Short Description Người dùng có thể xem thông tin chi tiết của một dự án mà mình đã tham gia Actors Member, Project Owner

Pre-Conditions Người dùng có tham gia vào ít nhất một dự án

Post Conditions Người dùng xem được thông tin chi tiết của một dự án đang tham gia

Main Flow (1) Vào xem danh sách các dự án đang tham gia

(2) Chọn vào dự án cần xem thông tin chi tiết

(3) Hệ thống chuyển đến màn hình hiển thị thông tin chi tiết của dự án

Bảng 14 Bảng đặc tả Usecase xem chi tiết dự án

Use case Tìm kiếm sản phẩm

Short Description Người dùng tìm kiếm sản phẩm thông qua thanh tìm kiếm ở màn hình danh sách project Actors Member, Project Owner

Pre-Conditions Người dùng đã truy cập vào website

Post Conditions Người dùng tìm thấy thông tin của dự án cần tìm

Main Flow (1) Người dùng nhấp chọn vào thanh tìm kiếm trên màn hình danh sách dự án

(2) Người dùng nhập tên dự án muốn tìm kiếm [A1]

(3) Người dùng nhấn biểu tượng tìm kiếm hoặc nhấn enter

(4) Hệ thống hiển thị danh sách các dự án tìm được thông qua từ khóa người dùng vừa nhập [E1]

Alternate Flow (A1) Người dùng nhấp chọn ngoài khu vực thanh tìm kiếm và quay lại bước (1)

Exception Flow (E1) Người dùng nhập thông tin dự án không có trong hệ thống, hiển thị hiển thị danh sách trống

Bảng 15 Bảng đặc tả Usecase tìm kiếm dự án

3.2.12 Xem danh sách các dự án yêu thích

Use case Xem danh sách các dự án đã yêu thích

Short Description Người dùng có thể xem các dự án yêu thích trong danh sách dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Post Conditions Người dùng xem được các dự án đã yêu thích

Main Flow (1) Người dùng nhấp chọn danh mục dự án ở thanh sidebar hoặc vào danh mục tất cả dự án

(2) Hệ thống hiển thị danh sách các dự án của người dùng, trong đó các dự án yêu thích được đánh dấu sao [E1] Alternate Flow

Exception Flow Nếu không có dự án nào trong mục dự án yêu thích, hiển thị thông báo không có dự án trong mục dự án yêu thích

Bảng 16 Bảng đặc tả Usecase xem danh sách các dự án yêu thích

3.2.13 Thêm dự án vào mục yêu thích

Use case Thêm dự án vào mục yêu thích

Short Description Người dùng có thể thêm dự án vào mục yêu

Thích Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Post Conditions Dự án được thêm vào mục yêu thích thành công

Main Flow (1) Người dùng chọn vào dự án mong muốn

(2) Hệ thống điều hướng đến trang thông tin chi tiết của dự án

(3) Người dùng nhấp chọn “Favourite”

(4) Hệ thống thực hiện thêm dự án vào mục dự án yêu thích

(5) Hệ thống hiển thị thông báo thêm dự án vào mục yêu thích thành công

Bảng 17 Bảng đặc tả Usecase thêm dự án vào mục yêu thích

3.2.14 Loại bỏ dự án khỏi mục yêu thích

Use case Loại bỏ dự án khỏi mục yêu thích

Short Description Người dùng có thể loại bỏ dự án khỏi mục yêu thích

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng có ít nhất 1 dự án đã yêu thích Post Conditions Dự án được loại bỏ khỏi danh mục yêu thích thành công

Main Flow (1) Người dùng chọn vào dự án mong muốn

(2) Hệ thống điều hướng đến trang thông tin chi tiết của dự án

(3) Người dùng nhấp chọn “Unfavourite”

(4) Hệ thống thực hiện loại bỏ dự án khỏi mục dự án yêu thích

(5) Hệ thống hiển thị thông báo loại bỏ dự án khỏi mục yêu thích thành công

Bảng 18 Bảng đặc tả Usecase loại bỏ dự ản khỏi danh mục yêu thích

3.2.15 Xem danh sách các thành viên của dự án

Use case Xem danh sách các thành viên của dự án

Short Description Người dùng có thể xem danh sách các thành viên hiện tại của dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia vào dự án

Post Conditions Người dùng có thể xem danh sách các thành viên trong dự án

Main Flow (1) Người dùng vào trang danh sách dự án

(2) Người chọn chọn vào dự án muốn xem danh sách thành viên

(3) Hệ thống điều hướng đến trang chi tiết của dự án

(4) Hệ thống hiển thị danh sách thành viên của dự án ở bên phải màn hình chi tiết dự án

Bảng 19 Bảng đặc tả Usecase xem danh sách các thành viên của dự án

3.2.16 Xem thông tin thành viên của dự án

Use case Xem thông tin thành viên của dự án

Short Description Người dùng có thể xem thông tin của các thành viên trong dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Post Conditions Người dùng có thể xem thông tin thành viên của dự án

Main Flow (1) Người dùng vào trang danh sách dự án

(2) Người chọn chọn vào dự án muốn xem danh sách thành viên

(3) Hệ thống điều hướng đến trang chi tiết của dự án

(4) Hệ thống hiển thị danh sách thành viên của dự án ở bên phải màn hình chi tiết dự án

(5) Người dùng chọn vào tên hoặc ảnh đại diện hoặc chọn View Profile của một thành viên trong danh mục thành viên

Bảng 20 Bảng đặc tả Usecase xem sản phẩm trong mục sản phẩm yêu thích

Use case Mời thành viên

Short Description Người dùng có thể mời thành viên tham gia dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng là Project Owner của dự án Người dùng đang ở trang chi tiết của dự án Post Conditions Người dùng có thể mời thành viên tham gia dự án

Main Flow (1) Người dùng chọn “Invite Member”

(2) Hệ thống hiển thị màn hình mời thành viên

(3) Người dùng nhập email của thành viên muốn mời

(4) Hệ thống hiển thị thông tin thành viên tương ứng và hiển thị nút “Invite” [E1] [E2]

(5) Người dùng chọn nút “Invite” [A1]

(6) Hệ thống gửi mail xác nhận tham gia dự án đến người được mời

(7) Hệ thống thông báo mời thành viên thành công

Alternate Flow (A1) Người dùng chọn “Cancel”, không có thông tin nào được lưu

Exception Flow (E1) Email không tồn tại trong hệ thống, hệ thống hiển thị không có người dùng tương ứng

(E2) Người dùng đã được mời, hoặc đã là thành viên của dự án thì sẽ không hiển thị nút “Invite”

Bảng 21 Bảng đặc tả Usecase mời thành viên

Use case Tham gia dự án

Short Description Người dùng có thể tham gia dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã được mời vào dự án Người dùng chưa tham gia dự án

Post Conditions Người dùng có thể tham gia dự án

Main Flow (1) Người dùng đăng nhập vào email

(2) Người dùng chọn vào nút “Accept Invite”

(3) Trình duyệt điều hướng đến trang xác nhận lời mời tham gia dự án

(4) Hệ thống thêm thành viên vào cơ sở dữ liệu [E1]

(5) Hệ thống điều hướng người dùng đến trang thông báo mời thành công

Exception Flow (E1) Lời mời hết hạn, hệ thống điều hướng người dùng đến trang thông báo lỗi

Bảng 22 Bảng đặc tả Usecase tham gia dự án

Use case Loại bỏ thành viên

Short Description Người dùng có thể loại bỏ thành viên tham gia dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng là Project Owner của dự án Người dùng đang ở trang chi tiết của dự án Post Conditions Người dùng có thể loại bỏ thành viên của dự án

Main Flow (1) Người dùng chọn nút chức năng của thành viên mà mình muốn loại bỏ

(2) Hệ thống hiển thị chức năng “Remove member”

(3) Người dùng chọn “Remove Member”

(4) Hệ thống hiển thị thông báo yêu cầu người dùng xác nhận loại bỏ thành viên

(6) Hệ thống xóa thành viên dưới cơ sở dữ liệu và hiển thị thông báo loại bỏ thành viên thành công

Alternate Flow (A1) Người dùng chọn “Cancel”, không có thông tin nào được lưu

Bảng 23 Bảng đặc tả Usecase loại bỏ thành viên

3.2.20 Chuyển quyền sở hữu dự án

Use case Chuyển quyền sở hữu dự án

Short Description Người dùng có thể chuyển quyền sở hữu dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng là Project Owner của dự án Người dùng đang ở trang chi tiết của dự án Post Conditions Người dùng có thể chuyển quyền sở hữu dự án

Main Flow (1) Người dùng chọn nút chức năng của thành viên mà mình muốn nhượng quyền

(2) Hệ thống hiển thị chức năng “Change Owner”

(3) Người dùng chọn “Change Owner”

(4) Hệ thống hiển thị thông báo yêu cầu người dùng xác nhận chuyển quyền

(6) Hệ thống lưu thông tin người sở hữu dự án mới vào cơ sở dữ liệu và hiển thị thông báo chuyển quyền thành công

Alternate Flow (A1) Người dùng chọn “Cancel”, không có thông tin nào được lưu

Bảng 24 Bảng đặc tả Usecase chuyển quyền sở hữu dự án

Use case Rời dự án

Short Description Người dùng có thể rời một dự án đang tham gia

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia một dự án Post Conditions Người dùng có thể rời dự án đã tham gia

Main Flow (1) Người dùng vào trang danh sách dự án

(2) Người chọn chọn vào dự án muốn rời

(3) Hệ thống điều hướng đến trang chi tiết của dự án

(4) Hệ thống hiển thị danh sách thành viên của dự án ở bên phải màn hình chi tiết dự án

(5) Người dùng chọn vào tên hoặc ảnh đại diện của mình và chọn Rời dự án

(6) Người dùng xác nhận muốn rời dự án [A1]

(7) Hệ thống thực hiện loại bỏ người dùng khỏi dự án và thông báo rời dự án thành công

Alternate Flow (A1) Người dùng ấn chọn “Cancel”, quay lại bước (3) Exception Flow

Bảng 25 Bảng đặc tả Usecase rời dự án

3.2.22 Xem List Task của dự án

Use case Xem List Task của dự án

Short Description Người dùng có thể xem danh sách công việc của dự án dạng

List khi chọn tính năng List Task của dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Post Conditions Người dùng có thể xem danh sách công việc của dự án dạng

Main Flow (1) Người dùng vào trang danh sách dự án

(2) Người chọn dự án cần xem danh sách công việc

(3) Hệ thống điều hướng đến trang chi tiết của dự án

(4) Hệ thống hiển thị chi tiết của dự án

(5) Người dùng chọn vào tab List Task trên giao diện thông tin Project

(6) Hệ thống điều hướng đến trang List Task của dự án và hiển thị danh sách công việc dạng List

Bảng 26 Bảng đặc tả xem danh sách công việc của dự án trong List Task

3.2.23 Thêm công việc trên List Task

Use case Thêm công việc trên List Task

Short Description Người dùng có thể thêm công việc mới khi đang sử dụng tính năng List Task Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng List Task Post Conditions Người dùng có thể thêm công việc mới khi đang sử dụng tính năng List Task

Main Flow (1) Người dùng chọn nút “Create Issue”

(2) Hệ thống hiển thị cửa sổ thông tin của công việc

(3) Người dùng nhập thông tin của công việc

(4) Người dùng chọn nút “Create” [A1]

(5) Hệ thống xác nhận thông tin công việc mới và lưu vào cơ sở dữ liệu [E1]

Alternate Flow (A1) Người dùng nhấn nút “Cancel” để hủy tạo công việc, không có thông tin nào được lưu

Exception Flow (E1) Người dùng nhập thông tin công việc không hợp lệ, quay lại bước 3

Bảng 27 Bảng đặc tả thêm công việc trên List Task

3.2.24 Chỉnh sửa công việc trên List Task

Use case Chỉnh sửa công việc trên List Task

Short Description Người dùng có thể chỉnh sửa công việc khi đang sử dụng tính năng List Task Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng List Task Post Conditions Người dùng có thể chỉnh sửa công việc khi đang sử dụng tính năng List Task

Main Flow (1) Người dùng click vào công việc cần chỉnh sửa

(2) Hệ thống hiển thị thông tin của công việc

(3) Người dùng thực hiện thay đổi thông tin của công việc

(4) Người dùng chọn nút “Edit” [A1]

(5) Hệ thống xác nhận thông tin công việc chỉnh sửa và lưu vào cơ sở dữ liệu [E1]

Alternate Flow (A1) Người dùng nhấn nút “Cancel” để hủy chỉnh sửa công việc, không có thông tin nào được lưu

Exception Flow (E1) Người dùng chỉnh sửa thông tin công việc không hợp lệ, quay lại bước 3

Bảng 28 Bảng đặc tả chỉnh sửa công việc trên List Task

3.2.25 Xóa công việc trên List Task

Use case Xóa công việc trên List Task

Short Description Người dùng có thể xóa công việc khi đang sử dụng tính năng List Task Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng List Task Post Conditions Người dùng có thể xóa công việc khi đang sử dụng tính năng List Task

Main Flow (1) Người dùng click vào công việc cần xoá

(2) Hệ thống hiển thị thông tin của công việc

(3) Người dùng chọn nút “Delete”

(4) Hệ thống hiển thị cửa sổ xác nhận xóa công việc

(5) Người dùng chọn nút “OK” [A1]

(6) Hệ thống xác nhận xóa công việc trong cơ sở dữ liệu và xóa các dữ liệu liên quan đến công việc như bình luận, thông báo… [E1]

Alternate Flow (A1) Người dùng nhấn nút “Cancel” để hủy xóa công việc, không có thông tin nào được lưu

Exception Flow (E1) Trường hợp người dùng xóa một Epic, những công việc của Epic đó sẽ không còn được gán cho Epic đó nữa

Bảng 16: Bảng đặc tả xóa công việc trên List Task của dự án

3.2.26 Gán thành viên cho công việc trong dự án

Use case Gán thành viên cho công việc trên List Task của dự án

Short Description Người dùng có thể gán thành viên cho công việc khi đang sử dụng tính năng List Task của dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng List Task Post Conditions Người dùng có thể gán thành viên cho một công việc khi đang sử dụng tính năng List Task

Main Flow (1) Người dùng click vào công việc cần gán thành viên

(2) Hệ thống hiển thị thông tin của công việc

(3) Người dùng chọn nút “Assign”

(4) Hệ thống hiển thị danh sách các thành viên của dự án chưa được gán cho công việc hiện tại

(5) Người dùng chọn thành viên và nhấn nút “OK” [A1]

(6) Hệ thống xác nhận gán công việc cho thành viên và gửi thông báo đến thành viên được gán công việc…

Alternate Flow (A1) Người dùng nhấn nút “Cancel” để hủy gán công việc, không có thông tin nào được lưu

Exception Flow (E1) Trường hợp người dùng gán công việc cho chính mình, sẽ ko có thông báo

Bảng 29 Bảng đặc tả xóa công việc trên List Task của dự án

3.2.27 Xem Kanban Board của dự án

Use case Xem Kanban Board của dự án

Short Description Người dùng có thể xem màn hình Kanban Board của dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Post Conditions Người dùng có thể xem màn hình Kanban Board của dự án

Main Flow (1) Người dùng vào trang danh sách dự án

(2) Người chọn dự án cần xem danh sách công việc

(3) Hệ thống điều hướng đến trang chi tiết của dự án

(4) Hệ thống hiển thị chi tiết của dự án

(5) Người dùng chọn vào tab Kanban Board trên giao diện thông tin Project

(6) Hệ thống điều hướng đến trang Kanban Board của dự án và hiển thị danh sách công việc dạng Kanban Alternate Flow

Bảng 30 Bảng đặc tả Usecase xem Kanban Board của dự án

3.2.28 Cập nhật trạng thái công việc trên Kanban Board

Use case Cập nhật trạng thái công việc trên Kanban Board

Short Description Người dùng có thể cập nhật trạng thái công việc trên

Kanban Board bằng cách kéo thả các task vào các Board Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng Kanban Board Post Conditions Người dùng có thể cập nhật trạng thái công việc trên

Main Flow (1) Người dùng chọn công việc cần thay đổi trạng thái và thực hiện kéo chuột và thả vào board tương ứng với trạng thái cần thay đổi [E1]

(2) Hệ thống thực hiện cập nhật trạng thái của công việc đó tương ứng với board người dùng thả vào

(3) Hệ thống thông báo thay đổi trạng thái của công việc thành công

Exception Flow (E1) Trường hợp người dùng kéo và thả công việc vào vùng không hợp lệ, trạng thái công việc sẽ không được cập nhật

Bảng 31 Bảng đặc tả cập nhật trạng thái công việc trên Kanban Board

3.2.29 Thay đổi vị trí của công việc trên Kanban Board

Use case Thay đổi vị trí của công việc trên Kanban Board

Short Description Người dùng có thể cập nhật trạng thái công việc trên

Kanban Board bằng cách kéo thả công việc Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng Kanban Board Post Conditions Người dùng có thể cập nhật trạng thái công việc trên

Kanban Board bằng cách kéo thả công việc

Main Flow (1) Người dùng chọn công việc cần thay đổi trạng thái và thực hiện kéo chuột và thả công việc đến vị trí mong muốn

(2) Hệ thống thực hiện cập nhật vị trí của công việc đó tương ứng với board và vị trí người dùng thả vào

(3) Hệ thống thông báo thay đổi vị trí của công việc thành công

Exception Flow (E1) Trường hợp người dùng kéo và thả công việc vào vùng không hợp lệ, trạng thái công việc sẽ không được cập nhật

Bảng 32 Bảng đặc tả thay đổi vị trí công việc trên Kanban Board

3.2.30 Tạo công việc mới trên Kanban Board

Use case Tạo công việc mới trên Kanban Board

Short Description Người dùng có thể tạo công việc mới trên Kanban Board Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang sử dụng tính năng Kanban Board Post Conditions Người dùng có thể tạo công việc mới trên Kanban Board

Main Flow (1) Hệ thống hiển thị nút Create Task ở mỗi Board trên màn hình Kanban Board

(2) Người dùng chọn nút Create Task ở Board mong muốn

(3) Hệ thống hiển thị cửa sổ “Create Task”

(4) Người dùng thực hiện điền thông tin của công việc cần tạo

(6) Hệ thống tạo công việc tương ứng với thông tin và trạng thái của board người dùng đã chọn [E1]

Alternate Flow (A1) Người dùng nhấn nút “Cancel” để hủy tạo công việc, không có thông tin nào được lưu

Exception Flow (E1) Người dùng nhập thông tin công việc không hợp lệ, quay lại bước 2

Bảng 33 Bảng đặc tả tạo công việc mới trên Kanban Board

Use case Xem bình luận

Short Description Người dùng có xem bình luận của một dự án hoặc công việc Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình chi tiết dự án hoặc chi tiết công việc

Post Conditions Người dùng có thể xem bình luận của một dự án hoặc công việc

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án hoặc chi tiết một công việc

(2) Hệ thống hiển thị mục “Comments” chứa danh sách các bình luận trên dự án hoặc công việc

Bảng 34 Bảng đặc tả xem bình luận

Use case Tạo bình luận

Short Description Người dùng có thể xem bình luận trên một dự án hoặc công việc Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình chi tiết dự án hoặc chi tiết công việc

Post Conditions Người dùng có thể tạo bình luận mới trên một dự án hoặc công việc

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án hoặc chi tiết một công việc

(2) Hệ thống hiển thị mục “Leave a comment” để người dùng nhập bình luận

(3) Người dùng nhập bình luận vào “Your comment”

(5) Hệ thống tạo bình luận của người dùng trên công việc hoặc dự án tương ứng [E1]

Exception Flow (E1) Người dùng để trống “Your comment”, hệ thống thông báo lỗi, trở lại bước (3)

Bảng 35 Bảng đặc tả Usecase tạo bình luận

Use case Phản hồi bình luận

Short Description Người dùng có thể phản hồi một bình luận

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình chi tiết dự án hoặc chi tiết công việc

Có ít nhất một bình luận

Post Conditions Người dùng có thể tạo bình luận mới trên một dự án hoặc công việc

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án hoặc chi tiết một công việc

(2) Hệ thống hiển thị các bình luận ở mục “Comments” và nút “Reply” ở dưới mỗi bình luận

(3) Người dùng chọn nút “Reply”

(4) Hệ thống hiển thị mục “Leave a comment” ngay dưới bình luận

(5) Người dùng nhập bình luận vào “Your comment”

(7) Hệ thống tạo phản hồi bình luận của người dùng [E1] Alternate Flow

Exception Flow (E1) Người dùng để trống “Your comment”, hệ thống thông báo lỗi, trở lại bước (5)

Bảng 36 Bảng đặc tả Usecase phản hồi bình luận

Use case Pin bình luận

Short Description Người dùng có thể pin một bình luận

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình chi tiết dự án hoặc chi tiết công việc

Có ít nhất một bình luận Post Conditions Người dùng có thể pin một bình luận

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án hoặc chi tiết một công việc

(2) Hệ thống hiển thị các bình luận ở mục “Comments” và nút “Pin comment” ở mỗi bình luận

(3) Người dùng chọn nút “Pin comment”

(4) Hệ thống thực hiện lưu thông tin pin bình luận, thông báo Pin thành công vào cập nhật trạng thái của bình luận được pin

Exception Flow (E1) Người dùng pin bình luận hiện đang được Pin “Your comment”, hệ thống không cập nhật trạng thái

Bảng 37 Bảng đặc tả Usecase pin bình luận

Use case Chỉnh sửa bình luận

Short Description Người dùng có thể chỉnh sửa bình luận

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình chi tiết dự án hoặc chi tiết công việc

Có ít nhất một bình luận Post Conditions Người dùng có thể chỉnh sửa bình luận của mình

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án hoặc chi tiết một công việc

(2) Hệ thống hiển thị các bình luận ở mục “Comments” và nút “Edit comment” ở mỗi bình luận mà người dùng đã tạo

(3) Người dùng chọn nút “Edit comment”

(4) Hệ thống cho phép người dùng thay đổi bình luận

(5) Người dùng thực hiện thay đổi nội dung bình luận

(6) Người dùng chọn nút “Save”

(7) Hệ thống thực hiện lưu thông tin bình luận mới, thông báo cập nhật thành công vào cập nhật nội dung của bình luận

Exception Flow (E1) Người dùng để trống nội dung, hệ thống thông báo lỗi, lại bước (5)

Bảng 38 Bảng đặc tả Usecase chỉnh sửa bình luận

Use case Xóa bình luận

Short Description Người dùng có thể xóa bình luận

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình chi tiết dự án hoặc chi tiết công việc

Có ít nhất một bình luận Post Conditions Người dùng có thể xóa bình luận của mình

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án hoặc chi tiết một công việc

(2) Hệ thống hiển thị các bình luận ở mục “Comments” và nút “Delete comment” ở mỗi bình luận mà người dùng đã tạo

(3) Người dùng chọn nút “Delete comment”

(4) Hệ thống hiển thị thông báo yêu cầu người dùng xác nhận xóa bình luận

(5) Người dùng chọn nút “Yes” [A1]

(6) Hệ thống thực xóa bình luận, thông báo xóa thành công

Alternate Flow (A1) Người dùng chọn “Cancel”, không có thông tin nào được lưu Exception Flow

Bảng 39 Bảng đặc tả Usecase xóa bình luận

3.2.37 Xem danh sách tập tin

Use case Xem danh sách tập tin

Short Description Người dùng có thể xem danh sách tập tin của dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Post Conditions Người dùng có thể xem danh sách tập tin của dự án

Main Flow (1) Người dùng truy cập vào màn hình chi tiết một dự án

(2) Hệ thống hiển thị tab Attachments

(3) Người dùng chọn tab Attachments

(4) Hệ thống hiển thị danh sách các tập tin của dự án Alternate Flow

Bảng 40 Bảng đặc tả Usecase xem danh sách tập tin

Use case Thêm tập tin

Short Description Người dùng có thể thêm tập tin cho dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án

Người đang ở màn hình danh sách tập tin Post Conditions Người dùng có thể thêm tập tin cho dự án

Main Flow (1) Hệ thống hiển thị danh sách tập tin của dự án và nút

(2) Người dùng chọn nút “Upload”

(3) Hệ thống hiển thị cửa sổ chọn tập tin

(4) Người dùng chọn tập tin

(6) Hệ thống thực hiện tải tập tin lên cho dự án [E1]

Alternate Flow (A1) Người dùng chọn “Cancel”, không có thông tin nào được lưu

Exception Flow (E1) Người dọn chọn file vượt quá giới hạn quy định, hệ thống báo lỗi

Bảng 41 Bảng đặc tả Usecase thêm tập tin

Use case Xóa tập tin

Short Description Người dùng có thể xóa tập tin cho dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình danh sách tập tin

Có ít nhất một tập tin

Post Conditions Người dùng có thể xóa tập tin

Main Flow (1) Hệ thống hiển thị danh sách tập tin của dự án và nút

(2) Người dùng chọn nút “Delete” trên một tập tin

(3) Hệ thống hiển thị cửa sổ xác nhận xóa

(5) Hệ thống thực hiện xóa tập tin

Alternate Flow (A1) Người dùng chọn “Cancel”, không có thông tin nào được lưu Exception Flow

Bảng 42 Bảng đặc tả Usecase xóa tập tin

Use case Tải xuống tập tin

Short Description Người dùng có thể tải xuống tập tin

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người đang ở màn hình danh sách tập tin

Có ít nhất một tập tin Post Conditions Người dùng có thể tải xuống tập tin

Main Flow (1) Hệ thống hiển thị danh sách tập tin của dự án và nút

(2) Người dùng chọn nút “Download” trên một tập tin

(3) Hệ thống tải xuống tập tin cho phía người dùng và cập nhật số lượt tải

Bảng 43 Bảng đặc tả Usecase tải xuống tập tin

3.2.41 Xem danh sách thông báo

Use case Xem danh sách thông báo

Short Description Người dùng có thể xem danh sách thông báo

Pre-Conditions Người dùng đã đăng nhập vào website

Post Conditions Người dùng xem danh sách thông báo thành công

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

(2) Người chọn vào menu thông báo

(3) Hệ thống mở menu thông báo

(4) Hệ thống hiển thị danh sách thông báo Alternate Flow

Use case Đọc thông báo

Short Description Người dùng có thể đọc thông báo

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã mở menu thông báo Post Conditions Người dùng đọc một thông báo thành công

Main Flow (1) Hệ thống hiển thị danh sách thông báo kèm nút “Read” ở cạnh mỗi thông báo chưa đọc

(2) Người dùng nhấn “Read” một thông báo mới

(3) Hệ thống cập nhật trạng thái thông báo thành đã đọc

(4) Hệ thống cập nhật tổng số thông báo chưa đọc

(5) Hệ thống thông báo đọc thông báo thành công Alternate Flow

Bảng 45 Bảng đặc tả Usecase đọc thông báo

Use case Xóa thông báo

Short Description Người dùng có thể xóa thông báo

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã mở menu thông báo Post Conditions Người dùng xóa thông báo thành công

Main Flow (1) Hệ thống hiển thị danh sách thông báo kèm nút “Delete” ở cạnh mỗi thông báo

(2) Người dùng nhấn “Delete” một thông báo

(3) Hệ thống hiển thị popup yêu cầu xác nhận xóa

(5) Hệ thống xóa dữ liệu thông báo dưới cơ sở dữ liệu

(6) Hệ thống cập nhật danh sách thông báo

(7) Hệ thống thông báo xóa thông báo thành công

Alternate Flow (A1) Người dùng chọn Cancel, không có thông tin nào được lưu Exception Flow

Bảng 46 Bảng đặc tả Usecase xóa thông báo

Use case Xem Sprint Backlog của dự án

Short Description Người dùng có thể xem màn hình Sprint Backlog của dự án Actors Member, Project Owner

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án

Post Conditions Người dùng có thể xem màn hình Sprint Backlog của dự án

Main Flow (1) Người dùng vào trang danh sách dự án

(2) Người chọn dự án cần xem danh sách công việc

(3) Hệ thống điều hướng đến trang chi tiết của dự án

(4) Người dùng chọn vào tab Sprint Backlog

(5) Hệ thống điều hướng đến trang Sprint Backlog của dự án Alternate Flow

Bảng 47 Bảng đặc tả Usecase xem Sprint Backlog

Short Description Người dùng có thể tạo Sprint mới cho dự án

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang ở màn hình Sprint Backlog Post Conditions Người dùng có thể tạo Sprint mới cho dự án

Main Flow (1) Người dùng chọn nút “Create Sprint”

(2) Hệ thống hiển thị cửa sổ thông tin của Sprint

(3) Người dùng nhập thông tin của Sprint

(4) Người dùng chọn nút “Create” [A1]

(5) Hệ thống xác nhận thông tin Sprint mới và lưu vào cơ sở dữ liệu [E1]

(6) Hệ thống báo tạo Sprint thành công và hiển thị Sprint mới

Alternate Flow (A1) Người dùng chọn nút “Cancel”, không có thông tin nào dược lưu

Exception Flow (E1) Người dùng nhập sai định dạng thông tin, hệ thống thông báo lỗi, trở về bước (1)

Bảng 48 Bảng đặc tả Usecase tạo Sprint

Use case Chỉnh sửa Sprint

Short Description Người dùng có thể chỉnh sửa Sprint

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang ở màn hình Sprint Backlog

Dự án có ít nhất một Sprint Post Conditions Người dùng có thể chỉnh sửa Sprint

Main Flow (1) Hệ thống hiển thị nút “Edit Sprint” ở mỗi Sprint

(2) Người dùng chọn nút “Edit Sprint”

(3) Hệ thống hiển thị cửa sổ thông tin của Sprint

(4) Người dùng nhập thông tin của Sprint

(5) Người dùng chọn nút “Edit” [A1]

(6) Hệ thống xác nhận thông tin cập nhật và lưu vào cơ sở dữ liệu [E1]

(7) Hệ thống báo sửa Sprint thành công

Alternate Flow (A1) Người dùng chọn nút “Cancel”, không có thông tin nào dược lưu

Exception Flow (E1) Người dùng nhập sai định dạng thông tin, hệ thống thông báo lỗi, trở về bước (1)

Bảng 49 Bảng đặc tả Usecase chỉnh sửa Sprint

Short Description Người dùng có thể xóa Sprint

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang ở màn hình Sprint Backlog

Dự án có ít nhất một Sprint Post Conditions Người dùng có thể xSprint

Main Flow (1) Hệ thống hiển thị nút “Delete Sprint” ở mỗi Sprint

(2) Người dùng chọn nút “Delete Sprint”

(3) Hệ thống hiển thị cửa sổ xác nhận xóa Sprint

(4) Người dùng chọn nút “OK” [A1]

(5) Hệ thống xóa Sprint trong cơ sở dữ liệu

(6) Hệ thống báo xóa Sprint thành công

Alternate Flow (A1) Người dùng chọn nút “Cancel”, không có thông tin nào được lưu Exception Flow

Bảng 50 Bảng đặc tả Usecase xóa Sprint

Use case Bắt đầu Sprint

Short Description Người dùng có thể bắt đầu Sprint

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang ở màn hình Sprint Backlog

Dự án có ít nhất một Sprint Post Conditions Người dùng có thể bắt đầu Sprint

Main Flow (1) Hệ thống hiển thị nút “Start Sprint” ở mỗi Sprint

(2) Người dùng chọn nút “Start Sprint”

(3) Hệ thống hiển thị cửa sổ xác nhận bắt đầu Sprint

(4) Người dùng chọn nút “OK” [A1]

(5) Hệ thống cập nhật trạng thái Sprint trong cơ sở dữ liệu

(6) Hệ thống báo bắt đầu Sprint thành công

Alternate Flow (A1) Người dùng chọn nút “Cancel”, không có thông tin nào được lưu Exception Flow

Bảng 51 Bảng đặc tả Usecase bắt đầu Sprint

Use case Kết thúc Sprint

Short Description Người dùng có thể kết thúc Sprint

Pre-Conditions Người dùng đã đăng nhập vào website

Người dùng đã tham gia ít nhất một dự án Người dùng đang ở màn hình Sprint Backlog

Dự án có ít nhất một Sprint Post Conditions Người dùng có thể kết thúc Sprint

Main Flow (1) Hệ thống hiển thị nút “Close Sprint” ở mỗi Sprint

(2) Người dùng chọn nút “Close Sprint”

(3) Hệ thống hiển thị cửa sổ xác nhận Close Sprint [A1]

(4) Người dùng chọn nút “OK” [A2]

(5) Hệ thống cập nhật trạng thái Sprint trong cơ sở dữ liệu

(6) Hệ thông báo bắt đầu Sprint thành công

Alternate Flow (A1) Nếu còn công việc trong Sprint chưa được hoàn thành, hệ thống sẽ yêu cầu người dùng chuyển những công việc đó sang Sprint khác hoặc chuyển vào Backlog

(A2) Người dùng chọn nút “Cancel”, không có thông tin nào được lưu

Bảng 52 Bảng đặc tả Usecase kết thúc Sprint

LƯỢC ĐỒ ERD

Hình 12 Lược đồ tuần tự chức năng đăng nhập

3.4.3 Chức năng chỉnh sửa thông tin cá nhân

3.4.4 Chức năng thay đổi mật khẩu

3.4.5 Chức năng quên mật khẩu

Hình 17 Lược đồ tuần tự chức năng quên mật khẩu

3.4.6 Chức năng xem danh sách dự án

Hình 18 Lược đồ tuần tự chức năng xem danh sách dự án

3.4.7 Chức năng xem chi tiết dự án

Hình 19 Lược đồ tuần tự chức năng xem chi tiết dự án

3.4.8 Chức năng xem dự án yêu thích

Hình 20 Lược đồ tuần tự chức năng xem dự án yêu thích

3.4.9 Chức năng thêm dự án yêu thích

Hình 21 Lược đồ tuần tự chức năng thêm dự án yêu thích

3.4.10 Chức năng loại bỏ dự án yêu thích

Hình 22 Lược đồ tuần tự chức năng loại bỏ dự án yêu thích

3.4.11 Chức năng xem danh sách thành viên dự án

Hình 23 Lược đồ tuần tự chức năng xem danh sách thành viên dự án

3.4.12 Chức năng xem thông tin thành viên của dự án

Hình 24 Lược đồ tuần tự chức năng xem thông tin thành viên của dự án

3.4.13 Chức năng mời thành viên

Hình 25 Lược đồ tuần tự chức năng mời thành viên

3.4.14 Chức năng tham gia dự án

Hình 26 Lược đồ tuần tự chức năng tham gia dự án

3.4.15 Chức năng loại bỏ thành viên

Hình 27 Lược đồ tuần tự chức năng loại bỏ thành viên

3.4.16 Chức năng chuyển quyền sở hữu dự án

Hình 28 Lược đồ tuần tự chức năng chuyển quyền sở hữu dự án

3.4.17 Chức năng rời dự án

Hình 29 Lược đồ tuần tự chức năng rời dự án

3.4.18 Chức năng xem List Task

Hình 30 Lược đồ tuần tự chức năng xem List Task

3.4.19 Chức năng thêm công việc

Hình 31 Lược đồ tuần tự chức năng thêm công việc

3.4.20 Chức năng chỉnh sửa công việc

Hình 32 Lược đồ tuần tự chức năng chỉnh sửa công việc

3.4.21 Chức năng xóa công việc

Hình 33 Lược đồ tuần tự chức năng xóa công việc

3.4.22 Chức năng gán thành viên cho công việc

Hình 34 Lược đồ tuần tự chức năng gán thành viên cho công việc

3.4.23 Chức năng xem Kanban Board

Hình 35 Lược đồ tuần tự chức năng xem Kanban Board

3.4.24 Chức năng cập nhật trạng thái công việc trên Kanban Board

Hình 36 Lược đồ tuần tự chức năng cập nhật trạng thái công việc trên Kanban Board

3.4.25 Chức năng thay đổi vị trí công việc trên Kanban Board

Hình 37 Lược đồ tuần tự chức năng thay đổi vị trí công việc trên Kanban Board

3.4.26 Chức năng tạo công viêc trên Kanban

Hình 38 Lược đồ tuần tự chức năng tạo công việc trên Kanban

3.4.27 Chức năng xem bình luận

Hình 39 Lược đồ tuần tự chức năng xem bình luận

3.4.28 Chức năng tạo bình luận

Hình 40 Lược đồ tuần tự chức năng tạo bình luận

3.4.29 Chức năng phản hồi bình luận

Hình 41 Lược đồ tuần tự chức năng phản hồi bình luận

3.4.30 Chức năng ghim bình luận

Hình 42 Lược đồ tuần tự chức năng ghim bình luận

3.4.31 Chức năng chỉnh sửa bình luận

Hình 43 Lược đồ tuần tự chức năng chỉnh sửa bình luận

3.4.32 Chức năng xóa bình luận

Hình 44 Lược đồ tuần tự chức năng xóa bình luận

3.4.33 Chức năng xem danh sách tập tin

Hình 45 Lược đồ tuần tự chức năng xem danh sách tập tin

Hình 46 Lược đồ tuần tự chức năng thêm tập tin mới

Hình 47 Lược đồ tuần tự chức năng xóa tập tin

3.4.36 Xem danh sách thông báo

Hình 48 Lược đồ tuần tự chức năng xem danh sách thông báo

Hình 49 Lược đồ tuần tự chức năng đọc thông báo

Hình 50 Lược đồ tuần tự chức năng xóa thông báo

Hình 51 Lược đồ tuần tự chức năng xem Sprint Backlog

Hình 52 Lược đồ tuần tự chức năng tạo Sprint

Hình 53 Lược đồ tuần tự chức năng chỉnh sửa Sprint

Hình 54 Lược đồ tuần tự chức năng xóa Sprint

Hình 55 Lược đồ tuần tự chức năng bắt đầu Sprint

Hình 56 Lược đồ tuần tự chức năng kết thúc Sprint

LƯỢC ĐỒ TUẦN TỰ

4.1 LƯỢC ĐỒ CƠ SỞ DỮ LIỆU

THIẾT KẾ CƠ SỞ DỮ LIỆU

MÔ TẢ DỮ LIỆU BẢNG

4.2.1 Thông tin các trường trong bảng

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

1 users Lưu trữ thông tin của người dùng trong hệ thống

1.1 id bigint Mã id của người dùng

1.2 username varchar Username của người dùng

1.3 full_name varchar Tên đầy đủ của người dùng

1.4 email varchar Email của người dùng

1.5 password varchar Mật khẩu tài khoản người dùng

1.6 salt varchar Salt của người dùng

1.7 role varchar Vai trò của người dùng trong hệ thống

1.8 title varchar Chức vụ của người dùng

1.9 status int Trạng thái tài khoản

1.10 dob date Ngày sinh của người dùng

1.11 address varchar Địa chỉ của người dùng

1.12 avatar varchar Ảnh đại diện của người dùng

1.13 profile_cover_url varchar Ảnh bìa của người dùng

1.14 bio varchar Tiểu sử của người dùng

1.15 phone varchar Số điện thoại cá nhân người dùng 1.16 is_email_verified boolean Trạng thái xác thực email 1.17 created_at timestamp Thời gian tạo tài khoản

1.18 updated_at timestamp Thời gian cập nhật tài khoản

Bảng 53 Thông tin các trường trong bảng users

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

2 verify_emails Lưu thông tin xác thực email của người dùng

2.1 id bigint Mã id của verify_emails

2.2 email varchar Email cá nhân người dùng

2.3 srcret_code varchar Mã secret của verify

2.4 type int Loại email xác nhận (1: xác nhận tài khoản, 2: quên mật khẩu, 3: lời mời dự án) 2.5 project_id bigint Mã id của dự án

2.6 is_used bool Trạng thái của mã bí mật

2.7 created_at timestamptz Thời gian tạo mã

Bảng 54 Thông tin các trường trong bảng verify emails

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

4 sprints Lưu thông tin các sprint

4.1 id bigint Mã id của sprint

4.2 name varchar Tên của sprint

4.3 goal varchar Mục tiêu của sprint

4.4 project_id bigint Mã id của project

4.5 started bool Trạng thái bắt đầu của sprint

4.6 closed bool Trạng thái kết thúc của sprint 4.7 start_date timestamp Thời gian tạo sprint

4.8 end_date timestamp Thời gian cập nhật sprint

Bảng 55 Thông tin các trường trong bảng sprints

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

5 tasks Lưu thông tin các task

5.1 id bigint Mã id của sprint

5.2 project_id bigint Mã id của project

5.3 sprint_id bigint Mã id của sprint

5.4 created_by bigint Mã id của người tạo task

5.6 status int Trạng thái của task

5.7 name varchar Tên của task

5.8 description varchar Mô tả của task

5.9 position float Vị trí của task trên Kanban Board 5.10 priority int Mức độ của ưu tiên của task

5.11 due_date timestamp Hạn chót của task

5.12 started_at timestamp Thời gian bắt đầu task

5.13 created_at timestamp Thời gian tạo task

5.14 updated_at timestamp Thời gian cập nhật task

Bảng 56 Thông tin các trường trong bảng tasks

Kiểu Mục đích bảng/trường

6 project_members Lưu thông tin các thành viên dự án

6.1 Project_id bigint Mã id của project

6.2 User_id bigint Mã id của user

6.3 Added_at timestamp Thời gian thêm thành viên

6.4 role int Vai trò của thành viên

Bảng 57 Thông tin các trường trong bảng project_members

Kiểu Mục đích bảng/trường

Lưu thông tin thành viên thực hiện công việc

7.1 task_id bigint Mã id của task

7.2 user_id bigint Mã id của user

7.3 assigned_date timestamp Ngày giao công việc

Bảng 58 Thông tin các trường trong bảng task_assigned

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

8 favourites Lưu trữ thông tin mục yêu thích

8.1 id Bigint Mã id của favourite

8.2 user_id Bigint Mã id của user

8.3 object_id Bigint Mã id của project hoặc user được favourite

(1: project, 2: user) 8.3 created_at timestamp Thời gian tạo favourite

Bảng 59 Thông tin các trường trong bảng favourites

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

9 comments Lưu trữ thông tin bình luận

9.1 id bigint Mã của danh mục con

9.2 object_id bigint Mã id của project, task

9.3 parent_comment_id bigint Mã id của comment cha (nếu có) 9.4 created_by bigint Mã id của user tạo comment

9.6 message varchar Nội dung comment

9.7 pinned boolean Trạng thái ghim comment

9.8 created_at timestamp Thời gian tạo comment

9.9 updated_at timestamp Thời gian cập nhật comment

Bảng 60 Thông tin các trường trong bảng comments

Kiểu Mục đích bảng/trường

10 attachments Lưu thông tin các tập tin

10.1 id bigint Mã id của attachment

10.2 object_id bigint Mã id của project

10.3 user_id bigint Mã id của user

10.4 object_type int Loại attachment

10.6 file_path varchar Đường dẫn của attachment

10.7 file_ext varchar Đuôi file của attachment

10.8 file_size float Dung lượng của attachment

10.9 downloads int Số lượt tải của attachment

10.10 created_at timestamp Thời gian tạo attachment

10.11 updated_at timestamp Thời gian cập nhật attachment

Bảng 61 Thông tin các trường trong bảng attachments

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

Lưu danh sách các nhãn

11.1 id bigint Mã id của tag

11.2 tag_type int Loại tag

11.3 name varchar Tên của tag

11.4 decription varchar Mô tả của tag

11.5 created_at timestamp Thời gian tạo tag

11.6 updated_at timestamp Thời gian cập nhật tag

Bảng 62 Thông tin các trường trong bảng tags

Kiểu Mục đích bảng/trường

12 project_tags Lưu các nhãn của dự án

12.1 id bigint Mã id của project_tag

12.2 project_id bigint Mã id của project

12.3 tag_id bigint Mã id của tag

12.4 created_at timestamp Thời gian tạo project_tag

12.5 updated_at timestamp Thời gian cập nhật project_tag

Bảng 63 Thông tin các trường trong bảng project_tags

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

13 task_tags Lưu thông tin nhãn của task

13.1 id bigserial (int64) Mã id của task_tag

13.2 task_id bigserial (int64) Mã id của task

13.3 tag_id varchar Mã id của tag

Thời gian tạo task_tag 13.5 updated_at timestamp Thời gian cập nhật task_tag

Bảng 64 Thông tin các trường trong bảng task_tags

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

14 notifications Lưu thông tin các thông báo được tạo ra từ người dùng hoặc hệ thống

14.1 id bigint Mã id của notification

14.2 caused_by bigint Mã id của người tạo ra thông báo

14.3 project_id bigint Mã id của project

14.4 task_id bigint Mã id của task

14.5 action_type varchar Loại thông báo

14.6 data varchar Nội dung thông báo

14.7 created_on timestamp Thời gian tạo ra thông báo

Bảng 65 Thông tin các trường trong bảng notifications

TT Tên bảng/ trường Kiểu Mục đích bảng/trường

15 nofitication_notified Lưu thông tin các thông báo được gửi tới người dùng

15.1 id bigint Mã id của notification_notified

15.2 notification_id bigint Mã id của notification

15.3 user_id bigint Mã id của user nhận thông báo

15.4 read boolean Trạng thái đã đọc thông báo

15.5 created_at timestamp Thời gian user nhận được thông báo 15.6 updated_at timestamp Thời gian user đọc thông báo

Bảng 66 Thông tin các trường trong bảng notification_notified

THIẾT KẾ GIAO DIỆN

MÀN HÌNH GIAO DIỆN CỦA THÀNH VIÊN

Sơ đồ luồng màn hình dành cho người dùng đã đăng ký tài khoản với hệ thống và là thành viên trong dự án

5.1.1 Giao diện trang đăng nhập

Hình 58 Giao diện trang đăng nhập

5.1.2 Giao diện trang đăng nhập bằng Google

5.1.3 Giao diện trang đăng ký

Hình 60 Giao diện trang đăng ký

Hình 61 Giao diện trang Dashboard

5.1.5 Giao diện danh sách dự án

Hình 62 Giao diện trang danh sách dự án

5.1.6 Giao diện trang chi tiết dự án

Hình 63 Giao diện trang chi tiết dự án

5.1.7 Giao diện thông tin cá nhân người dùng

Hình 64 Giao diện trang thông tin cá nhân người dùng

5.1.8 Giao diện trang thông tin cá nhân thành viên dự án

Hình 65 Giao diện trang thông tin cá nhân thành viên dự án

Hình 66 Giao diện trang Attachments

5.1.10 Giao diện trang List Task

Hình 67 Giao diện trang List Task

5.1.11 Giao diện trang chi tiết công việc

Hình 68 Giao diện trang chi tiết công việc

5.1.12 Giao diện tạo công việc

Hình 69 Giao diện trang tạo công việc

5.1.13 Giao diện trang chỉnh sửa công việc

Hình 70 Giao diện trang chỉnh sửa công việc

5.1.14 Giao diện trang Kanban Board

Hình 71 Giao diện trang Kanban Board

5.1.15 Giao diện trang Sprint Backlog (của thành viên)

Hình 72 Giao diện trang Sprint Backlog (của thành viên)

5.1.16 Giao diện trang thay đổi mật khẩu

Hình 73 Giao diện trang thay đổi mật khẩu

5.1.17 Giao diện trang quên mật khẩu

Hình 74 Giao diện trang quên mật khẩu (bước 1)

Hình 75 Giao diện trang quên mật khẩu (bước 2)

5.1.18 Giao diện danh sách thông báo

Hình 76 Giao diện trang danh sách thông báo

MÀN HÌNH GIAO DIỆN CỦA NGƯỜI QUẢN LÝ DỰ ÁN

5.2.1 Giao diện trang Chi tiết dự án

Hình 77 Giao diện trang chi tiết dự án

5.2.2 Giao diện mời thành viên

Hình 78 Giao diện mời thành viên

5.2.3 Giao diện thay đổi người quản lý dự án

Hình 79 Giao diện thay đổi người quản lý dự án

5.2.4 Giao diện trang quản lý Sprint Backlog

Hình 80 Giao diện trang quản lý Sprint Backlog

Hình 81 Giao diện tạo Sprint

5.2.6 Giao diện bắt đầu Sprint

Hình 82 Giao diện bắt đầu Sprint

5.2.7 Giao diện kết thúc Sprint

Hình 83 Giao diện kết thúc Sprint

CÀI ĐẶT VÀ KIỂM THỬ

YÊU CẦU HỆ THỐNG

Để cài đặt và sử dụng ứng dụng, máy tính cần có các yêu cầu sau:

CÁC BƯỚC CÀI ĐẶT

Bước 1: Tải hoặc clone project từ 2 link Github sau:

- Front end: https://gitlab.com/kltl-ute/242k/09-fe

- Back end: https://gitlab.com/kltl-ute/242k/09-be

Bước 2: Khởi chạy Back end

- Vào file thư mục chứa project back end, mở cửa sổ command và gõ: “docker compose up”

Bước 3: Kết nối với database

- Chọn nút “+” để tạo kết nối mới đến database

- Click “Test” để kiểm tra kết nối

- Nếu kết nối thành công, hãy chọn tiếp “Connect”

- Vào thư mục chứa project, mở cửa sổ command và gõ lần lượt: yarn install yarn start

KIỂM THỬ

Xác định các yêu cầu, mục tiêu, phạm vi, môi trường kiểm thử của hệ thống như sau:

- Phạm vi kiểm thử: kiểm thử các chức năng quan trọng đã được nêu ra trong phần đặc tả yêu cầu chức năng của phía người dùng thành viên và người quản lý dự án

- Mục tiêu kiểm thử: phát hiện các lỗi trong hệ thống, lỗi tiềm ẩn để khắc phục và sửa chữa để đảm bảo hệ thống hoạt động bình thường

- Môi trường kiểm thử: các trình duyệt web như Chrome, Edge, Firefox

6.3.2 Phương pháp kiểm thử Áp dụng quy tắc kiểm thử hộp đen để kiểm thử các chức năng quan trọng của hệ thống Có thể kiểm thử được các chức năng quan trọng của hệ thống một cách nhanh chóng và hiệu quả

Lập kế hoạch kiểm thử chức năng dựa trên phân tích các yêu cầu chức năng của hệ thống Thiết kế các test case để kiểm thử các chức năng quan trọng, sau đó sẽ dùng các test case này để kiểm thử hệ thống Sau khi thu được kết quả, nhóm sẽ dựa trên kết quả để tiến hành chỉnh sửa hệ thống nếu có lỗi

ID Mô tả Các bước thực hiện Kết quả mong muốn Kết quả thực tế

Kết quả cuối cùng ITAS

Kiểm thử chức năng đăng ký

- Truy cập trang chủ của hệ thống

- - Điền họ tên đầy đủ

- - Điền xác nhận mật khẩu

Tài khoản được lưu vào hệ thống, người dùng xác nhận tài khoản để có thể đăng nhập vào hệ thống Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng Đăng nhập bằng tài khoản chưa được xác nhận

- Truy cập trang chủ của hệ thống

- Điền đầy đủ thông tin yêu cầu ở phần đăng nhập

Người dùng được thông báo tài khoản chưa được xác nhận và không thể đăng nhập vào hệ thống Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xác nhận tài khoản

- - Người dùng truy cập vào email và nhấn vào đường link xác nhận tài khoản

- Người dùng được chuyển đến trang thông báo xác nhận tài khoản thành công

- Hệ thống thực hiện cập nhật trạng thái tài khoản thành đã xác nhận Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng quên mật khẩu

- Truy cập trang chủ của hệ thống

- Bấm nút Send reset link

- Bấm vào đường dẫn reset được gửi ở email

- Người dùng được điều hướng sang trang đặt lại mật khẩu

- Người dùng điền mật khẩu mới

- Điền mật khẩu mới và xác nhận mật khẩu

- Nhấn nút đổi mật khẩu - Đăng nhập lại với mật khẩu mới

Người dùng đổi được mật khẩu mới Đáp ứng được kết quả mong muốn Đạt

Kiểm thử xem danh sách dự án

Hệ thống điều hướng người dùng đến trang

“All Projects” và hiển thị danh sách tất cả dự án mà người dùng là thành viên Đáp ứng được kết quả mong muốn Đạt

Kiểm thử xem chi tiết dự án

- Bấm vào một project bất kỳ ở màn hình All Projects

Hệ thống điều hướng người dùng đến trang

“Project Detail” và hiển thị thông tin chi tiết của dự án Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng thêm dự án vào danh sách yêu thích

- Vào trang chi tiết của dự án bất kỳ

Dự án được thêm vào danh sách yêu thích, hệ thống cập nhật danh sách yêu thích Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng thêm dự án vào danh sách yêu thích

“Favourite” của dự án ở thanh navbar

Dự án được thêm vào danh sách yêu thích, hệ thống cập nhật danh sách yêu thích Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem danh sách thành viên dự án

- Truy cập vào trang chi tiết của một dự án

Hệ thống hiển thị danh mục

“Project members” hiển thị thông tin của các thành viên dự án Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem thông tin thành viên

- Truy cập vào trang chi tiết của một dự án

- Bấm vào biểu tượng avatar của một thành viên

Hệ thống chuyển đến trang chi tiết thông tin cá nhân của thành viên đó Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng bình luận trên dự án

- Truy cập vào trang chi tiết một dự án

- Nhập bình luận và bấm

Bình luận của người dùng được tạo trong dự án Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng chỉnh sửa bình luận trên dự án

- Truy cập vào trang chi tiết một dự án

- Chọn Edit Comment ở một bình luận

Bình luận của người dùng cập nhật Đáp ứng được kết quả mong muốn Đạt

- Nhập nội dung thay đổi comment

Kiểm thử chức năng phản hồi bình luận trên dự án

- Truy cập vào trang chi tiết một dự án

- Chọn Reply ở một bình luận

- Nhập nội dung tin nhắn và nhấn nút

Bình luận của người dùng được tạo và là bình luận phản hồi của tin nhắn gốc Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem danh sách tập tin của dự án

- Truy cập vào trang chi tiết một dự án

Hệ thống chuyển người dùng đến trang danh sách tập tin và hiển thị tất cả các tập tin của dự án Đáp ứng được kết quả mong muốn Đạt

- Nhấn vào nút Upload ở màn hình

Hệ thống thực hiện tải file của người dùng lưu trữ ở hệ thống và cập nhật danh sách tập tin Đáp ứng được kết quả mong muốn Đạt

Hệ thống tải file xuống cho người dùng và tăng số lượt download lên

1 Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem List

- - Người dùng chọn List Task ở màn hình chi tiết dự án

Hệ thống chuyển người dùng đến trang List Task và hiển thị danh sách công việc Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem chi tiết công việc

- - Người dùng nhấn vào tiêu đề của một công việc trên danh sách

Hệ thống hiển thị trang thông tin chi tiết công việc Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng chỉnh sửa công việc

- Người dùng vào trang chi tiết công việc

- Người dùng thay đổi thông tin công việc

Hệ thống hiển thị thông báo cập nhật thành công Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng gán thành viên thực hiện công việc

- Người dùng vào trang chi tiết công việc

- Người dùng nhấn nút Assign ở thành viên muốn gán

Hệ thống thông báo gán công việc thành công

Gửi thông báo đến người được gán Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng hủy gán thành viên thực hiện công việc

- Người dùng vào trang chi tiết công việc

- Người dùng nhấn nút Unassigne ở thành viên muốn gán

Hệ thống thông báo hủy gán công việc thành công Gửi thông báo cho người được hủy gán Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem

- Người dùng chọn tab Kanban Board ở màn hình chi tiết dự án

Hệ thống chuyển người dùng đến trang Kanban Board và hiển thị danh sách công việc dạng Kanban Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng kéo thả công việc trên

- Người dùng chọn một công việc và kéo thả công việc đó sang vị trí ở Board khác

Công việc được cập nhật trạng thái và vị trí tương ứng Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem danh sách thông báo

- Người dùng nhấn vào biểu tượng thông báo trên header

Danh sách các thông báo của người dùng được hiển thị Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng đọc thông báo

- Người dùng nhấn vào nút

“Read” ở một thông báo chưa được đọc

Thông báo được cập nhật trạng thái đã đọc, số tin nhắn chưa đọc được cập nhật Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng đọc tất cả thông báo

- Người dùng nhấn vào nút

Tất cả thông báo được cập nhật trạng thái đã đọc, số tin nhắn chưa đọc được cập nhật Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem thêm thông báo

- Người dùng chọn nút “Load More” ở cửa sổ Notifications

Các thông báo cũ hơn được load vào danh sách thông báo Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xem

- Người dùng chọn tab Sprint Backlog ở màn hình chi tiết dự án

Hệ thống chuyển người dùng đến trang Sprint Backlog và hiển thị danh sách công việc dạng Sprint Backlog Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng xóa công việc trên

- Người dùng chọn xóa một công việc trên Sprint

Công việc được xóa và danh sách công việc được cập nhật Đáp ứng được kết quả mong muốn Đạt

Kiểm thử chức năng rời dự án

- Người dùng chọn nút Leave ở màn hình chi tiết dự án

- Chọn OK để xác nhận rời dự án

Người dùng bị xóa khỏi danh sách thành viên dự án Đáp ứng được kết quả mong muốn Đạt

Bảng 67 Kết quả kiểm thử chức năng thành viên

ID Mô tả Các bước thực hiện Kết quả mong muốn

Kết quả thực tế Kết quả cuối cùng ITASKPO_01 Kiểm thử chức năng mời thành viên

- - Truy cập vào trang chi tiết dự án

- - Nhập thông tin email của người muốn mời

Thông báo mời thành công, gửi mail xác nhận đến người được mời Đáp ứng được kết quả mong muốn Đạt

ITASKPO_02 Kiểm thử chức năng xóa thành viên

- - Truy cập vào trang chi tiết dự án

- - Bấm vào biểu tượng xóa ở thành viên muốn loại bỏ

- - Bấm OK để xác nhận xóa thành viên

Thành viên bị loại bỏ khỏi danh sách thành viên dự án Đáp ứng được kết quả mong muốn Đạt

ITASKPO_03 Kiểm thử chức năng chuyển quyền quản lý dự án

- - Truy cập vào trang chi tiết dự án

“Change Owner” ở ở thành viên muốn nhượng quyền

- - Bấm OK để xác nhận nhượng quyền

Cập nhật quyền tương ứng của người dùng và thành viên được nhượng quyền Đáp ứng được kết quả mong muốn Đạt

ITASKPO_04 Kiểm thử tính năng xóa dự án

- - Truy cập vào trang chi tiết dự án

- - Bấm OK để xác nhận xóa dự án

Dữ liệu của dự án và tất cả công việc liên quan sẽ bị xóa Đáp ứng được kết quả mong muốn Đạt

ITASKPO_05 Kiểm thử tính năng rời dự án

- - Truy cập vào trang chi tiết dự án

- Chọn thành viên chuyển quyền sở hữu dự án sau khi rời

- Nhấn OK để xác nhận chuyển quyền và rời dự án

Cập nhật quyền tương ứng của người dùng và thành viên được nhượng quyền Xóa thành viên hiện tại ra khỏi dự án Đáp ứng được kết quả mong muốn Đạt

ITASKPO_06 Kiểm thử tính năng tạo Sprint

- Truy cập trang Spint Backlog

- Điền đầy đủ thông tin yêu cầu ở modal tạo Sprint và bấm nút Create

Sprint được tạo thành công Đáp ứng được kết quả mong muốn Đạt

ITASKPO_07 Kiểm thử tính năng chỉnh sửa Sprint

- Truy cập trang Spint Backlog

- Điền đầy đủ thông tin cần cập nhật

Sprint được cập nhật thông tin thành công Đáp ứng được kết quả mong muốn Đạt

ITASKPO_08 Kiểm thử tính năng bắt đầu Sprint

- Truy cập trang Spint Backlog

- Chỉnh sửa thông tin cần thiết

Sprint được bắt đầu thành công Đáp ứng được kết quả mong muốn Đạt

ITASKPO_09 Kiểm thử tính năng kết thúc Sprint

- Truy cập trang Spint Backlog

- Chọn Sprint mới cho các công việc chưa hoàn thành

Các công việc chưa hoàn thành được cập nhật Sprint mới Sprint hiện tại kết thúc thành công Đáp ứng được kết quả mong muốn Đạt

ITASKPO_10 Kiểm thử tính năng xóa Sprint

- Truy cập trang Spint Backlog

OK để xác nhận xóa Sprint

Sprint được xóa thành công Đáp ứng được kết quả mong muốn Đạt

Bảng 68 Kết quả kiểm thử chức năng người quản lý dự án

ƯU ĐIỂM

4 Đề nghị cho bảo vệ hay không?

TP.Hồ Chí Minh, ngày …, tháng… năm 2024

(Ký & ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên sinh viên:

Ngành: CNTT Chuyên ngành: Công nghệ phần mềm

Họ và tên Giáo viên phản biện: ThS Mai Anh Thơ

1 Về nội dung báo cáo & khối lượng thực hiện:

4 Đề nghị cho bảo vệ hay không?

TP.Hồ Chí Minh, ngày …, tháng… năm 2024

(Ký & ghi rõ họ tên)

Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM

Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc

LỜI CẢM ƠN Để hoàn thành báo cáo môn học này trước tiên em xin gửi đến các quý thầy, cô giáo trường Đại Học Sư Phạm Kỹ Thuật TP.HCM lời cảm ơn chân thành và sâu sắc nhất Đặc biệt, em xin gửi đến thầy Nguyễn Minh Đạo, người đã tận tình hướng dẫn, giúp đỡ em hoàn thành bài báo cáo này lời cảm ơn sâu sắc nhất Trong quá trình làm báo cáo, em đã có cơ hội tìm hiểu thêm những gì đã học

Em cũng xin gửi lời cám ơn tới các thầy cô của trường Đại học Sư phạm Kỹ thuật TP Hồ Chí Minh – đặc biệt là các giảng viên của khoa Công Nghệ Thông Tin, đã nhiệt tình chia sẻ rất nhiều kiến thức và kinh nghiệm cho chúng em trong quá trình học tập tại trường Để giúp em có thể hoàn thành đề tài một cách tốt nhất

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế nên bài đề tài này không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các quý thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này

Nhóm em xin chân thành cảm ơn !

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC TIÊU CỦA ĐỀ TÀI 1

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3

1.2 MỘT SỐ THƯ VIỆN VÀ ỨNG DỤNG HỖ TRỢ KHÁC 5

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM 10

2.3 ĐẶC TẢ YÊU CẦU ĐỀ TÀI 15

2.3.1 Mô tả tổng quát đề tài 15

2.3.2 Thông tin đề tài và công nghệ sử dụng 15

2.3.3.1 Yêu cầu chức năng nghiệp vụ 15

2.3.3.2 Yêu cầu chức năng hệ thống 17

2.3.4 Yêu cầu phi chức năng 18

CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 19

3.2.1 Mô tả Use Case của hệ thống 21

3.2.5 Xem thông tin cá nhân 28

3.2.6 Chỉnh sửa thông tin cá nhân 29

3.2.9 Xem danh sách dự án 32

3.2.10 Xem chi tiết dự án 33

3.2.12 Xem danh sách các dự án yêu thích 34

3.2.13 Thêm dự án vào mục yêu thích 35

3.2.14 Loại bỏ dự án khỏi mục yêu thích 36

3.2.15 Xem danh sách các thành viên của dự án 37

3.2.20 Chuyển quyền sở hữu dự án 42

3.2.22 Xem List Task của dự án 44

3.2.23 Thêm công việc trên List Task 45

3.2.24 Chỉnh sửa công việc trên List Task 46

3.2.25 Xóa công việc trên List Task 47

3.2.26 Gán thành viên cho công việc trong dự án 48

3.2.27 Xem Kanban Board của dự án 49

3.2.28 Cập nhật trạng thái công việc trên Kanban Board 50

3.2.29 Thay đổi vị trí của công việc trên Kanban Board 51

3.2.30 Tạo công việc mới trên Kanban Board 52

3.2.37 Xem danh sách tập tin 59

3.2.41 Xem danh sách thông báo 62

3.5.3 Chức năng chỉnh sửa thông tin cá nhân 74

3.5.4 Chức năng thay đổi mật khẩu 75

3.5.5 Chức năng quên mật khẩu 75

3.5.6 Chức năng xem danh sách dự án 76

3.5.7 Chức năng xem chi tiết dự án 76

3.5.8 Chức năng xem dự án yêu thích 77

3.5.9 Chức năng thêm dự án yêu thích 77

3.5.10 Chức năng loại bỏ dự án yêu thích 77

3.5.11 Chức năng xem danh sách thành viên dự án 78

3.5.12 Chức năng xem thông tin thành viên của dự án 78

3.5.13 Chức năng mời thành viên 78

3.5.14 Chức năng tham gia dự án 79

3.5.15 Chức năng loại bỏ thành viên 79

3.5.16 Chức năng chuyển quyền sở hữu dự án 80

3.5.17 Chức năng rời dự án 80

3.5.19 Chức năng thêm công việc 81

3.5.20 Chức năng chỉnh sửa công việc 82

3.5.21 Chức năng xóa công việc 82

3.5.22 Chức năng gán thành viên cho công việc 83

3.5.23 Chức năng xem Kanban Board 83

3.5.24 Chức năng cập nhật trạng thái công việc trên Kanban Board 84

3.5.25 Chức năng thay đổi vị trí công việc trên Kanban Board 84

3.5.26 Chức năng tạo công viêc trên Kanban 85

3.5.27 Chức năng xem bình luận 85

3.5.28 Chức năng tạo bình luận 86

3.5.29 Chức năng phản hồi bình luận 86

3.5.30 Chức năng ghim bình luận 87

3.5.31 Chức năng chỉnh sửa bình luận 87

3.5.32 Chức năng xóa bình luận 88

3.5.33 Chức năng xem danh sách tập tin 88

3.5.36 Xem danh sách thông báo 90

CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU 95

4.1 LƯỢC ĐỒ CƠ SỞ DỮ LIỆU 95

4.2 MÔ TẢ DỮ LIỆU BẢNG 96

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN 103

5.1 MÀN HÌNH GIAO DIỆN CỦA THÀNH VIÊN 103

5.1.1 Giao diện trang đăng nhập 103

5.1.2 Giao diện trang đăng nhập bằng Google 103

5.1.3 Giao diện trang đăng ký 104

5.1.5 Giao diện danh sách dự án 104

5.1.6 Giao diện trang chi tiết dự án 105

5.1.7 Giao diện thông tin cá nhân người dùng 105

5.1.8 Giao diện trang thông tin cá nhân thành viên dự án 106

5.1.10 Giao diện trang List Task 107

5.1.11 Giao diện trang chi tiết công việc 107

5.1.12 Giao diện tạo công việc 108

5.1.13 Giao diện trang chỉnh sửa công việc 108

5.1.14 Giao diện trang Kanban Board 109

5.1.15 Giao diện trang Sprint Backlog (của thành viên) 109

5.1.16 Giao diện trang thay đổi mật khẩu 110

5.1.17 Giao diện trang quên mật khẩu 110

5.1.18 Giao diện danh sách thông báo 111

5.2 MÀN HÌNH GIAO DIỆN CỦA NGƯỜI QUẢN LÝ DỰ ÁN 112

5.2.1 Giao diện trang Chi tiết dự án 112

5.2.3 Giao diện thay đổi người quản lý dự án 113

5.2.4 Giao diện trang quản lý Sprint Backlog 113

5.2.6 Giao diện bắt đầu Sprint 114

5.2.7 Giao diện kết thúc Sprint 115

CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ 116

Hình 8 Kiến trúc chung của hệ thống 15

Hình 9 Lược đồ Use Case 20

Hình 10 Lược đồ ERD của hệ thống 71

Hình 11 Lược đồ Class Diagram của hệ thống 72

Hình 12 Lược đồ tuần tự chức năng đăng nhập 73

Hình 13 Lược đồ tuần tự chức năng đăng ký 74

Hình 14 Lược đồ tuần tự chức năng đăng ký 74

Hình 15 Lược đồ tuần tự chức năng chỉnh sửa thông tin cá nhân 74

Hình 16 Lược đồ tuần tự chức năng thay đổi mật khẩu 75

Hình 17 Lược đồ tuần tự chức năng quên mật khẩu 75

Hình 18 Lược đồ tuần tự chức năng xem danh sách dự án 76

Hình 19 Lược đồ tuần tự chức năng xem chi tiết dự án 76

Hình 20 Lược đồ tuần tự chức năng xem dự án yêu thích 77

Hình 21 Lược đồ tuần tự chức năng thêm dự án yêu thích 77

Hình 22 Lược đồ tuần tự chức năng loại bỏ dự án yêu thích 78

Hình 23 Lược đồ tuần tự chức năng xem danh sách thành viên dự án 78

Hình 24 Lược đồ tuần tự chức năng xem thông tin thành viên của dự án 78

Hình 25 Lược đồ tuần tự chức năng mời thành viên 79

Hình 26 Lược đồ tuần tự chức năng tham gia dự án 79

Hình 27 Lược đồ tuần tự chức năng loại bỏ thành viên 80

Hình 28 Lược đồ tuần tự chức năng chuyển quyền sở hữu dự án 80

Hình 29 Lược đồ tuần tự chức năng rời dự án 81

Hình 31 Lược đồ tuần tự chức năng thêm công việc 82

Hình 32 Lược đồ tuần tự chức năng chỉnh sửa công việc 82

Hình 33 Lược đồ tuần tự chức năng xóa công việc 83

Hình 34 Lược đồ tuần tự chức năng gán thành viên cho công việc 83

Hình 35 Lược đồ tuần tự chức năng xem Kanban Board 84

Hình 36 Lược đồ tuần tự chức năng cập nhật trạng thái công việc trên Kanban Board 84

Hình 37 Lược đồ tuần tự chức năng thay đổi vị trí công việc trên Kanban Board 85

Hình 38 Lược đồ tuần tự chức năng tạo công việc trên Kanban 85

Hình 39 Lược đồ tuần tự chức năng xem bình luận 86

Hình 40 Lược đồ tuần tự chức năng tạo bình luận 86

Hình 41 Lược đồ tuần tự chức năng phản hồi bình luận 87

Hình 42 Lược đồ tuần tự chức năng ghim bình luận 87

Hình 43 Lược đồ tuần tự chức năng chỉnh sửa bình luận 88

Hình 44 Lược đồ tuần tự chức năng xóa bình luận 88

Hình 45 Lược đồ tuần tự chức năng xem danh sách tập tin 89

Hình 46 Lược đồ tuần tự chức năng thêm tập tin mới 89

Hình 47 Lược đồ tuần tự chức năng xóa tập tin 90

Hình 48 Lược đồ tuần tự chức năng xem danh sách thông báo 90

Hình 49 Lược đồ tuần tự chức năng đọc thông báo 91

Hình 50 Lược đồ tuần tự chức năng xóa thông báo 91

Hình 51 Lược đồ tuần tự chức năng xem Sprint Backlog 92

Hình 52 Lược đồ tuần tự chức năng tạo Sprint 92

Hình 53 Lược đồ tuần tự chức năng chỉnh sửa Sprint 93

Hình 54 Lược đồ tuần tự chức năng xóa Sprint 93

Hình 55 Lược đồ tuần tự chức năng bắt đầu Sprint 94

Hình 56 Lược đồ tuần tự chức năng kết thúc Sprint 94

Hình 57 Lược đồ cơ sở dữ liệu của hệ thống 95

Hình 58 Giao diện trang đăng nhập 103

Hình 59 Giao diện trang đăng nhập bằng Google 103

Hình 60 Giao diện trang đăng ký 104

Hình 62 Giao diện trang danh sách dự án 105

Hình 63 Giao diện trang chi tiết dự án 105

Hình 64 Giao diện trang thông tin cá nhân người dùng 106

Hình 65 Giao diện trang thông tin cá nhân thành viên dự án 106

Hình 66 Giao diện trang Attachments 107

Hình 67 Giao diện trang List Task 107

Hình 68 Giao diện trang chi tiết công việc 108

Hình 69 Giao diện trang tạo công việc 108

Hình 70 Giao diện trang chỉnh sửa công việc 109

Hình 71 Giao diện trang Kanban Board 109

Hình 72 Giao diện trang Sprint Backlog (của thành viên) 110

Hình 73 Giao diện trang thay đổi mật khẩu 110

Hình 74 Giao diện trang quên mật khẩu (bước 1) 111

Hình 75 Giao diện trang quên mật khẩu (bước 2) 111

Hình 76 Giao diện trang danh sách thông báo 112

Hình 77 Giao diện trang chi tiết dự án 112

Hình 78 Giao diện mời thành viên 113

Hình 79 Giao diện thay đổi người quản lý dự án 113

Hình 80 Giao diện trang quản lý Sprint Backlog 114

Hình 81 Giao diện tạo Sprint 114

Hình 82 Giao diện bắt đầu Sprint 115

Hình 83 Giao diện kết thúc Sprint 115

Bảng 1 Bảng mô tả yêu cầu chức năng của hệ thống người dùng thành viên 16

Bảng 2 Bảng mô tả yêu cầu chức năng của hệ thống phía người quản lý dự án 17

Bảng 3 Bảng mô tả yêu cầu chức năng của hệ thống 18

Bảng 4 Bảng mô tả yêu cầu phi chức năng 18

Bảng 5 Bảng mô tả Usecase của hệ thống 25

Bảng 6 Bảng đặc tả Usecase đăng ký 26

Bảng 7 Bảng đặc tả Usecase đăng nhập 27

Bảng 8 Bảng đặc tả Usecase đăng xuất 28

Bảng 9 Bảng đặc tả Usecase xem thông tin cá nhân 29

Bảng 10 Bảng đặc tả Usecase chỉnh sửa thông tin cá nhân 30

Bảng 11 Bảng đặc tả Usecase thay đổi mật khẩu 31

Bảng 12 Bảng đặc tả Usecase quên mật khẩu 32

Bảng 13 Bảng đặc tả Usecase xem danh sách dự án 33

Bảng 14 Bảng đặc tả Usecase xem chi tiết dự án 33

Bảng 15 Bảng đặc tả Usecase tìm kiếm dự án 34

Bảng 16 Bảng đặc tả Usecase xem danh sách các dự án yêu thích 35

Bảng 17 Bảng đặc tả Usecase thêm dự án vào mục yêu thích 36

Bảng 18 Bảng đặc tả Usecase loại bỏ dự ản khỏi danh mục yêu thích 37

Bảng 19 Bảng đặc tả Usecase xem danh sách các thành viên của dự án 38

Bảng 20 Bảng đặc tả Usecase xem sản phẩm trong mục sản phẩm yêu thích 39

Bảng 21 Bảng đặc tả Usecase mời thành viên 40

Bảng 22 Bảng đặc tả Usecase tham gia dự án 41

Bảng 23 Bảng đặc tả Usecase loại bỏ thành viên 42

Bảng 25 Bảng đặc tả Usecase rời dự án 44

Bảng 26 Bảng đặc tả xem danh sách công việc của dự án trong List Task 45

Bảng 27 Bảng đặc tả thêm công việc trên List Task 46

Bảng 28 Bảng đặc tả chỉnh sửa công việc trên List Task 47

Bảng 29 Bảng đặc tả xóa công việc trên List Task của dự án 49

Bảng 30 Bảng đặc tả Usecase xem Kanban Board của dự án 50

Bảng 31 Bảng đặc tả cập nhật trạng thái công việc trên Kanban Board 51

Bảng 32 Bảng đặc tả thay đổi vị trí công việc trên Kanban Board 52

Bảng 33 Bảng đặc tả tạo công việc mới trên Kanban Board 53

Bảng 34 Bảng đặc tả xem bình luận 54

Bảng 35 Bảng đặc tả Usecase tạo bình luận 55

Bảng 36 Bảng đặc tả Usecase phản hồi bình luận 56

Bảng 37 Bảng đặc tả Usecase pin bình luận 56

Bảng 38 Bảng đặc tả Usecase chỉnh sửa bình luận 57

Bảng 39 Bảng đặc tả Usecase xóa bình luận 58

Bảng 40 Bảng đặc tả Usecase xem danh sách tập tin 59

Bảng 41 Bảng đặc tả Usecase thêm tập tin 60

Bảng 42 Bảng đặc tả Usecase xóa tập tin 61

Bảng 43 Bảng đặc tả Usecase tải xuống tập tin 62

Bảng 44 Bảng đặc tả Usecase xem danh sách thông báo 62

Bảng 45 Bảng đặc tả Usecase đọc thông báo 63

Bảng 46 Bảng đặc tả Usecase xóa thông báo 64

Bảng 47 Bảng đặc tả Usecase xem Sprint Backlog 65

Bảng 48 Bảng đặc tả Usecase tạo Sprint 66

Bảng 50 Bảng đặc tả Usecase xóa Sprint 68

Bảng 51 Bảng đặc tả Usecase bắt đầu Sprint 69

Bảng 52 Bảng đặc tả Usecase kết thúc Sprint 70

Bảng 53 Thông tin các trường trong bảng users 96

Bảng 54 Thông tin các trường trong bảng verify emails 97

Bảng 55 Thông tin các trường trong bảng sprints 97

Bảng 56 Thông tin các trường trong bảng tasks 98

Bảng 57 Thông tin các trường trong bảng project_members 98

Bảng 58 Thông tin các trường trong bảng task_assigned 99

Bảng 59 Thông tin các trường trong bảng favourites 99

Bảng 60 Thông tin các trường trong bảng comments 100

Bảng 61 Thông tin các trường trong bảng attachments 100

Bảng 62 Thông tin các trường trong bảng tags 101

Bảng 63 Thông tin các trường trong bảng project_tags 101

Bảng 64 Thông tin các trường trong bảng task_tags 101

Bảng 65 Thông tin các trường trong bảng notifications 102

Bảng 66 Thông tin các trường trong bảng notification_notified 102

Bảng 67 Kết quả kiểm thử chức năng thành viên 124

Bảng 68 Kết quả kiểm thử chức năng người quản lý dự án 126

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Với sự phát triển nhanh chóng của công nghệ thông tin và xu hướng làm việc trực tuyến, nhu cầu quản lý công việc một cách hiệu quả và linh hoạt đã trở nên cần thiết hơn bao giờ hết Một trang web quản lý công việc trực tuyến sẽ cung cấp một nền tảng tiên tiến giúp các nhóm làm việc phối hợp hiệu quả hơn dù ở bất kỳ đâu

Mô hình Agile Scrum là một phương pháp quản lý dự án linh hoạt, cho phép các nhóm làm việc tăng cường sự tương tác, cải tiến liên tục và phản hồi nhanh chóng Triển khai web quản lý công việc với mô hình này sẽ giúp các nhóm làm việc tổ chức, theo dõi và quản lý các công việc một cách trực quan và dễ dàng, từ đó tối ưu hóa quy trình làm việc và nâng cao năng suất

Do đó, việc xây dựng một trang web quản lý công việc trực tuyến theo mô hình Agile Scrum như iTask sẽ đáp ứng nhu cầu quản lý công việc ngày càng cao, tạo ra một môi trường làm việc hiệu quả và linh hoạt cho các nhóm làm việc, và mở ra cơ hội mới cho các nhà quản lý dự án và chuyên gia trong lĩnh vực này

2 MỤC TIÊU CỦA ĐỀ TÀI

Mục tiêu chính của đề tài này là xây dựng một website quản lý công việc trực tuyến chuyên nghiệp và chất lượng, hỗ trợ người dùng dễ dàng theo dõi tiến độ công việc của dự án cũng như có thể kiểm tra các công việc hiện tại của bản thân

Bước đầu sẽ là phát triển một trang web cơ bản, cung cấp thông tin chi tiết về các dự án, giúp người dùng dễ dàng tham gia vào các dự án Tiếp theo, sẽ xây dựng hệ thống cho phép người dùng quản lý thông tin dự án, công việc và các thông tin khác liên quan Trang web cũng sẽ hỗ trợ các tính năng như bình luận, tải tài liệu lên cho dự án,…

Các mục tiêu cụ thể bao gồm:

- Tạo ra một giao diện người dùng thân thiện, trực quan và hấp dẫn, giúp người dùng dễ dàng tương tác và tạo các dự án trên website

Phần mở đầu nhân và dữ liệu của người dùng

- Tối ưu hóa hiệu suất và khả năng mở rộng của website, để đáp ứng số lượng người dùng ngày càng tăng và nhu cầu phát triển trong tương lai

- Đáp ứng các yêu cầu cơ bản của một trang web quản lý công việc, bao gồm khả năng truy cập danh sách dự án, tham gia dự án, quản lý công việc và quản lý thành viên dự án

Phần nghiên cứu nghiệp vụ nhóm đã tiến hành khảo sát các trang web quản lý công việc trực tuyến, văn phòng phẩm như: Jira, Trello, Hive, Notion,…tìm hiểu nhu cầu của người dùng và cả doanh nghiệp

Phần back-end sử dụng Gin framework của ngôn ngữ Golang, xây dựng API và thao tác với dữ liệu một cách chính xác và nhanh chóng

Phần front-end sử dụng framework ReactJS kết hợp với ReduxJS để thiết kế giao diện cho end-user

Phần bảo mật hệ thống, tiến hành nghiên cứu JWT(JSON Web Tokens) để bảo mật cho hệ thống.

4 PHẠM VI NGHIÊN CỨU Áp dụng các kiến thức đã được học trên nhà trường và nghiên cứu thêm các kiến thức mới về thiết kế phần mềm cũng như học và áp dụng các công nghệ mới để áp dụng vào hệ thống

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thành đề tài, nhóm đã học hỏi được thêm nhiều được nhiều kiến thức mới về hệ thống quản lý công việc và quy trình phát triển phần mềm.

PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Golang, hay Go, là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google Được ra mắt vào năm 2009, Go kết hợp hiệu suất cao của ngôn ngữ C với tính tiện dụng của các ngôn ngữ lập trình hiện đại Một trong những đặc điểm nổi bật của

Go là khả năng xử lý đồng thời mạnh mẽ, nhờ vào thiết kế goroutines và channels, giúp việc xây dựng các ứng dụng đa luồng trở nên dễ dàng và hiệu quả hơn

NHƯỢC ĐIỂM

● Chưa cung cấp đủ các tính năng nâng cao để quản lý Scrum như Tempo, History

● Chưa xây dựng được phân quyền trong dự cho các Stakeholders

● Chưa ứng dụng được WebSocket để ứng dụng cho tính năng thông báo

HƯỚNG PHÁT TRIỂN

● Cải tiến UI của trang web

● Ứng dụng kiến thức về Web Socket để cải tiến hệ thống thông báo

● Làm thêm các chức năng để phân quyền trong dự án

● Ứng dụng kiến thức AI để làm hệ thống recommend công việc

● Xây dựng thêm các tính năng nâng cao như: Quản lý Tempo, Log time, History

Ngày đăng: 18/11/2024, 16:25

HÌNH ẢNH LIÊN QUAN

Hình 3. Minh họa TypeScript - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 3. Minh họa TypeScript (Trang 25)
Hình 8. Kiến trúc chung của hệ thống - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 8. Kiến trúc chung của hệ thống (Trang 34)
Bảng 41. Bảng đặc tả Usecase thêm tập tin - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Bảng 41. Bảng đặc tả Usecase thêm tập tin (Trang 79)
Hình 12. Lược đồ tuần tự chức năng đăng nhập - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 12. Lược đồ tuần tự chức năng đăng nhập (Trang 92)
Hình 17. Lược đồ tuần tự chức năng quên mật khẩu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 17. Lược đồ tuần tự chức năng quên mật khẩu (Trang 94)
Hình 22. Lược đồ tuần tự chức năng loại bỏ dự án yêu thích - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 22. Lược đồ tuần tự chức năng loại bỏ dự án yêu thích (Trang 97)
Hình 25. Lược đồ tuần tự chức năng mời thành viên - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 25. Lược đồ tuần tự chức năng mời thành viên (Trang 98)
Hình 26. Lược đồ tuần tự chức năng tham gia dự án - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 26. Lược đồ tuần tự chức năng tham gia dự án (Trang 98)
Hình 27. Lược đồ tuần tự chức năng loại bỏ thành viên - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 27. Lược đồ tuần tự chức năng loại bỏ thành viên (Trang 99)
Hình 31. Lược đồ tuần tự chức năng thêm công việc - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 31. Lược đồ tuần tự chức năng thêm công việc (Trang 101)
Hình 33. Lược đồ tuần tự chức năng xóa công việc - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 33. Lược đồ tuần tự chức năng xóa công việc (Trang 102)
Hình 37. Lược đồ tuần tự chức năng thay đổi vị trí công việc trên Kanban Board - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 37. Lược đồ tuần tự chức năng thay đổi vị trí công việc trên Kanban Board (Trang 104)
Hình 41. Lược đồ tuần tự chức năng phản hồi bình luận - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 41. Lược đồ tuần tự chức năng phản hồi bình luận (Trang 106)
Hình 45. Lược đồ tuần tự chức năng xem danh sách tập tin - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 45. Lược đồ tuần tự chức năng xem danh sách tập tin (Trang 108)
Hình 47. Lược đồ tuần tự chức năng xóa tập tin - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 47. Lược đồ tuần tự chức năng xóa tập tin (Trang 109)
Hình 49. Lược đồ tuần tự chức năng đọc thông báo - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 49. Lược đồ tuần tự chức năng đọc thông báo (Trang 110)
Hình 51. Lược đồ tuần tự chức năng xem Sprint Backlog - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 51. Lược đồ tuần tự chức năng xem Sprint Backlog (Trang 111)
Hình 52. Lược đồ tuần tự chức năng tạo Sprint - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 52. Lược đồ tuần tự chức năng tạo Sprint (Trang 111)
Hình 67. Giao diện trang List Task - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 67. Giao diện trang List Task (Trang 126)
Hình 70. Giao diện trang chỉnh sửa công việc - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 70. Giao diện trang chỉnh sửa công việc (Trang 128)
Hình 75. Giao diện trang quên mật khẩu (bước 2) - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 75. Giao diện trang quên mật khẩu (bước 2) (Trang 130)
Hình 78. Giao diện mời thành viên - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 78. Giao diện mời thành viên (Trang 132)
Hình 82. Giao diện bắt đầu Sprint - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng website quản lý công việc trực tuyến sử dụng Golang và Reactjs
Hình 82. Giao diện bắt đầu Sprint (Trang 134)

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

TÀI LIỆU LIÊN QUAN

w