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

đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc

97 0 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 nền tảng hỗ trợ quản lý công việc
Tác giả Trần Đình Khôi, Trần Quang Phúc
Người hướng dẫn ThS. Trần Thị Hồng Yến
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án
Năm xuất bản 2023
Thành phố TP.HCM
Định dạng
Số trang 97
Dung lượng 7,1 MB

Cấu trúc

  • Chương 1: GIỚI THIỆU ĐỀ TÀI (19)
    • 1.1. Lý do chọn đề tài (19)
    • 1.2. Hiện trạng thực tế và cách giải quyết vấn đề (20)
      • 1.2.1. Hiện trạng (20)
      • 1.2.2. Giải quyết vấn đề (21)
    • 1.3. Mục đích đề tài (22)
    • 1.4. Phạm vi nghiên cứu (22)
    • 1.5. Đối tượng nghiên cứu (23)
    • 1.6. Phương pháp nghiên cứu (23)
  • Chương 2: CÔNG NGHỆ SỬ DỤNG (24)
    • 2.1. Next.js (24)
      • 2.1.1. Giới thiệu (24)
      • 2.1.2. Lý do sử dụng (25)
    • 2.2. ReactJS (26)
      • 2.2.1. Giới thiệu (26)
      • 2.2.2. Lý do sử dụng (27)
    • 2.3. Redux (28)
      • 2.3.1. Giới thiệu (28)
      • 2.3.2. Lý do sử dụng (29)
    • 2.4. MongoDB (30)
      • 2.4.1. Giới thiệu (30)
    • 2.5. Golang (31)
      • 2.5.1. Giới thiệu (31)
      • 2.5.2. Lý do sử dụng (32)
    • 2.6. AWS S3 (32)
      • 2.6.1. Giới thiệu (32)
      • 2.6.2. Lý do sử dụng (33)
    • 2.7. Socket.IO (34)
      • 2.7.1. Giới thiệu (34)
      • 2.7.2. Lý do sử dụng (34)
  • Chương 3: THIẾT KẾ HỆ THỐNG (36)
    • 3.1. Xây dựng hệ thống (36)
      • 3.1.1. Kiến trúc hệ thống (36)
      • 3.1.2. Mô tả các thành phần trong kiến trúc hệ thống (37)
    • 3.2. Phân tích yêu cầu (38)
      • 3.2.1. Đăng ký (38)
      • 3.2.2. Đăng nhập (38)
      • 3.2.3. Xem danh sách workspace (38)
      • 3.2.4. Xem chi tiết bảng (38)
      • 3.2.5. Tìm kiếm bảng, thẻ, workspace (38)
      • 3.2.6. Tạo bảng (39)
      • 3.2.7. Tạo thẻ (39)
      • 3.2.8. Quản lý thông tin tài khoản cá nhân (39)
      • 3.2.9. Chat với trợ lý ảo (39)
    • 3.3. Thiết kế hệ thống (40)
      • 3.3.1. Sơ đồ Use-case tổng quát (40)
        • 3.3.1.1. Sơ đồ Use Case của người dùng chưa đăng nhập (40)
        • 3.3.1.2. Sơ đồ Use Case của người dùng đã đăng nhập (41)
      • 3.3.2. Danh sách Actor (41)
      • 3.3.3. Danh sách Use Case (42)
      • 3.3.4. Đặc tả Use Case (43)
        • 3.3.4.1. Đặc tả Use Case Đăng ký (43)
        • 3.3.4.2. Đặc tả Use Case Đăng nhập (44)
        • 3.3.4.3. Đặc tả Use Case Đăng nhập với Goole (0)
        • 3.3.4.4. Đặc tả Use Case Quên mật khẩu (0)
        • 3.3.4.5. Đặc tả Use Case Quản lý thông tin tài khoản (0)
        • 3.3.4.6. Đặc tả Use Case Sửa thông tin tài khoản (0)
        • 3.3.4.7. Đặc tả Use Case Đổi mật khẩu (0)
        • 3.3.4.8. Đặc tả Use Case Quản lý workspaces (0)
        • 3.3.4.9. Đặc tả Use Case Tạo workspace (0)
        • 3.3.4.10. Đặc tả Use Case Chỉnh sửa workspace (0)
        • 3.3.4.11. Đặc tả Use Case Quản lý thành viên workspace (55)
        • 3.3.4.12. Đặc tả Use Case Quản lý bảng (0)
        • 3.3.4.13. Đặc tả Use Case Tạo bảng (0)
        • 3.3.4.14. Đặc tả Use Case Chỉnh sửa bảng (0)
        • 3.3.4.15. Đặc tả Use Case Xoá bảng (0)
        • 3.3.4.16. Đặc tả Use Case Quản lý thành viên bảng (0)
        • 3.3.4.17. Đặc tả Use Case Xem thống kê dữ liệu bảng (0)
        • 3.3.4.19. Đặc tả Use Case Tạo cột (0)
        • 3.3.4.20. Đặc tả Use Case Chỉnh sửa cột (0)
        • 3.3.4.21. Đặc tả Use Case Xoá cột (0)
        • 3.3.4.22. Đặc tả Use Case Quản lý thẻ (0)
        • 3.3.4.23. Đặc tả Use Case Tạo thẻ (0)
        • 3.3.4.24. Đặc tả Use Case Chỉnh sửa thẻ (0)
        • 3.3.4.25. Đặc tả Use Case Xoá thẻ (0)
        • 3.3.4.26. Đặc tả Use Case Thông báo (0)
        • 3.3.4.27. Đặc tả Use Case Chat với trợ lý ảo (0)
        • 3.3.4.28. Đặc tả Use Case Tóm tắt nội dung bảng (0)
    • 3.4. Thiết kế dữ liệu (72)
      • 3.4.1. Sơ đồ Logic (72)
      • 3.4.2. Danh sách các bảng trong cơ sở dữ liệu (72)
      • 3.4.3. Mô tả chi tiết các bảng (73)
        • 3.4.3.1. Bảng users (73)
        • 3.4.3.2. Bảng workspaces (73)
        • 3.4.3.3. Bảng boards (74)
        • 3.4.3.4. Bảng columns (74)
        • 3.4.3.5. Bảng cards (75)
        • 3.4.3.6. Bảng labels (76)
        • 3.4.3.7. Bảng workspace_members (76)
        • 3.4.3.8. Bảng board_members (76)
        • 3.4.3.9. Bảng card_attachments (77)
  • Chương 4: XÂY DỰNG ỨNG DỤNG (78)
    • 4.1. Danh sách màn hình (78)
    • 4.2. Chi tiết màn hình (78)
      • 4.2.1. Màn hình Đăng nhập (78)
      • 4.2.2. Màn hình Đăng ký (79)
      • 4.2.3. Màn hình Khôi phục mật khẩu (80)
      • 4.2.4. Màn hình Thay đổi mật khẩu (81)
      • 4.2.5. Màn hình Quản lý Workspace (81)
      • 4.2.6. Màn hình Quản lý Board (83)
      • 4.2.7. Màn hình Quản lý Card (88)
      • 4.2.8. Màn hình Quản lý tài khoản (88)
      • 4.2.9. Màn hình Tìm kiếm (90)
      • 4.2.10. Màn hình Thông báo (91)
      • 4.2.11. Màn hình Light/Dark mode (92)
      • 4.2.12. Màn hình Trợ lý ảo (92)
  • Chương 5: TỔNG KẾT (94)
    • 5.1. Đánh giá (94)
      • 5.1.1. Quá trình làm việc (94)
      • 5.1.2. Thuận lợi (94)
      • 5.1.3. Khó khăn (94)
      • 5.1.4. Kết quả đạt được (94)
    • 5.2. Ưu điểm (95)
    • 5.3. Nhược điểm (96)
    • 5.4. Hướng phát triển (96)

Nội dung

GIỚI THIỆU ĐỀ TÀI

Lý do chọn đề tài

Xây dựng một nền tảng hỗ trợ quản lý công việc là một đề tài thú vị và mang đến nhiều giá trị, đặc biệt trong bối cảnh công nghệ thông tin phát triển mạnh mẽ hiện nay Lựa chọn của nhóm đối với đề tài này đến từ việc nhận thức về những thách thức mà chúng ta đang phải đối mặt trong quá trình quản lý công việc, và cơ hội mà công nghệ cung cấp để giải quyết những vấn đề này.

Trước hết, quản lý công việc truyền thống thường gặp nhiều khó khăn trong việc tổ chức thông tin, giao tiếp và theo dõi tiến độ công việc Môi trường làm việc đa dạng và phức tạp yêu cầu một hệ thống linh hoạt có thể thích ứng nhanh chóng với sự thay đổi Một nền tảng trực tuyến không chỉ giúp tối ưu hóa quy trình làm việc mà còn tạo điều kiện cho sự tích hợp thông tin và tương tác linh hoạt giữa các thành viên trong nhóm.

Hơn nữa, thách thức về quản lý thời gian và tài nguyên là một vấn đề nổi bật. Một nền tảng hiệu quả sẽ giúp theo dõi và phân phối công việc một cách thông minh, từ đó tối ưu hóa nguồn lực và giảm thiểu rủi ro sai sót Công nghệ thông tin, đặc biệt là trí tuệ nhân tạo và phân tích dữ liệu, sẽ đóng vai trò quan trọng trong việc đưa ra các đề xuất, tiến độ, và cung cấp thông tin một cách trực quan.

Ngoài ra, yếu tố của sự linh hoạt và tiện lợi cũng là một lý do lớn khi chọn đề tài này Sự linh động của môi trường làm việc hiện đại yêu cầu một nền tảng có thể truy cập từ mọi thiết bị, bất kỳ nơi nào và bất kỳ lúc nào Điều này giúp tăng cường khả năng làm việc của nhóm, đặc biệt là khi họ cần phải làm việc từ xa hoặc khi có sự thay đổi bất ngờ trong kế hoạch.

Việc xây dựng nền tảng hỗ trợ quản lý công việc không chỉ là một đề tài hấp dẫn về mặt kỹ thuật mà còn mang lại giá trị lớn trong việc cải thiện hiệu suất làm việc và quản lý tài nguyên trong môi trường làm việc ngày nay Sự kết hợp giữa công nghệ thông tin và các giải pháp quản lý công việc sẽ giúp tạo ra một công cụ mạnh mẽ, đáp ứng đa dạng và linh hoạt, giúp chúng ta đạt được mục tiêu của mình một cách hiệu quả và bền vững.

Từ những lợi ích to lớn, sự hiệu quả và sức ảnh hưởng kể trên, nhóm đã quyết định chọn đề tài “Xây dựng nền tảng hỗ trợ quản lý công việc” để phát triển trong đồ án 2.

Hiện trạng thực tế và cách giải quyết vấn đề

Trong lĩnh vực xây dựng website hỗ trợ quản lý công việc hiện nay đã có không ít các hướng nghiên cứu phong phú, đa dạng, một trong số đó có thể kể đến như:

‒ Giao diện và trải nghiệm người dùng:

 Nhiều nghiên cứu đã tập trung vào việc thiết kế giao diện người dùng hấp dẫn và thân thiện, tạo ra trải nghiệm thuận tiện và dễ dàng cho người dùng.

 Các phương pháp như nghiên cứu người dùng để hiểu rõ hơn về đối tượng người sử dụng trang web, tối ưu hóa tốc độ trang web, sử dụng màu sắc hài hòa và phù hợp, … đã được nghiên cứu và áp dụng để cải thiện hiệu quả làm việc trên các nền tảng.

‒ Nhu cầu về quản lý tài nguyên:

 Đối với một trang web hỗ trợ quản lý công việc, việc tối ưu quá trình quản lý tài nguyên luôn là một trong những ưu tiên hàng đầu.

 Các nghiên cứu cũng đã tận dụng quá trình phân tích và dự đoán nhu cầu tài nguyên để ước tính mức độ tăng trưởng trong tương lai.

‒ Sự phối hợp giữa các thành viên trong nhóm:

 Đa số các nền tảng ngày nay đều ra sức mang đến sự phối hợp mượt mà giữa các thành viên trong nhóm, giúp tối ưu hóa nguồn lực và kỹ năng của từng cá nhân Ngoài ra, công việc được phân chia đều, tránh tình trạng chồng chéo hoặc thiếu sót, từ đó tăng cường hiệu quả toàn bộ nhóm.

 Tăng cường tính bảo mật cho trang web là một quy trình không ngừng và đòi hỏi sự chú ý đặc biệt từ phía các nhà phát triển.

 Có thể nói, các trang web ngày nay đã chú ý hơn về vấn đề này, nghiêm túc đầu tư thời gian và nguồn nhân lực để tăng cường độ bảo mật về thông tin, dữ liệu.

Cùng với những hướng nghiên cứu nổi bật và những hướng đi mới mẻ mang lại tính đột phá cho đề tài, đi kèm với đó vẫn còn một số vấn đề cần tập trung nghiên cứu giải quyết như:

‒ Thông tin và số liệu trực quan: một trong những vấn đề quan trọng trong quản lý công việc là đảm bảo thể hiện thông tin chính xác và số liệu một trực quan, bởi vì đó là căn cứ để người dùng đưa ra những quyết định quan trọng cũng như hiểu rõ tình hình công việc Hơn nữa, các nền tảng nên đưa ra các thông tin và số liệu giúp đánh giá hiệu suất của từng thành viên trong nhóm, hay theo dõi tiến độ của các công việc, xác định công việc đã hoàn thành, đang tiến hành, hay đang gặp khó khăn.

‒ Theo dõi thời gian biểu của các công việc: bên cạnh việc cung cấp những số liệu thể hiện tình hình công việc, việc theo dõi thời gian biểu giúp người dùng có được một cái nhìn tổng quan về dòng thời gian của toàn bộ những công việc Người dùng có thể xác định công việc nào quan trọng và đòi hỏi sự ưu tiên cao, ước lượng thời gian cho các công việc và dự báo chính xác hơn về thời gian hoàn thành.

‒ Tổng hợp số liệu: các nền tảng hiện chỉ dừng lại ở việc đưa ra số liệu, nhưng chưa chú ý đến việc tổng hợp chúng sao cho dễ đọc, dễ hiểu, hơn nữa là nhắc nhở người dùng cần tập trung, ưu tiên vào những công việc nào Các nền tảng cần chú ý vào vấn đề này, cung cấp những giải pháp hiệu quả và có những hướng đi mới đột phá.

‒ Trợ lý ảo: trong quá trình làm việc, người dùng sẽ luôn gặp phải những vấn câu trả lời phù hợp và nhanh chóng Nó cung cấp một giao diện tương tác tự nhiên, giúp người dùng tương tác với hệ thống một cách dễ dàng và linh hoạt Bạn có thể hỏi về bất kỳ vấn đề gì mà bạn đang gặp phải trong công việc, trở lý ảo sẽ cung cấp thông tin chính xác và liên quan Trong làn sóng và nhiều sự chú ý đổ dồn về AI, đây có thể nói là một hướng nghiên cứu thú vị trong thời gian tới.

Mục đích đề tài

‒ Hiểu về NextJS, ReactJS, Golang cũng như những công nghệ mới, có thể áp dụng chúng vào đồ án.

‒ Tạo nên một ứng dụng có giao diện trực quan, dễ sử dụng, dễ tiếp cận người dùng, có khả năng mở rộng cao.

‒ Giải quyết, cải thiện và nâng cao hiệu quả cho quá trình quản lý công việc của người dùng.

‒ Sản phẩm tạo ra có tính ứng dụng cao, có khả năng đưa vào sử dụng thực tế.

Phạm vi nghiên cứu

 Ứng dụng có thể hoạt động trên nền tảng Web.

 Đăng nhập, đăng ký, đặt lại mật khẩu.

 Tìm kiếm Không gian làm việc, Bảng và Thẻ.

 Quản lý Không gian làm việc.

 Quản lý Nhiệm vụ trong bảng.

 Gợi ý thành viên phù hợp với nhiệm vụ.

 Xem thời gian biểu của các công việc.

 Tóm tắt các công việc (công việc nào chưa hoàn thành, công việc

 Quản lý thông tin cá nhân.

Đối tượng nghiên cứu

 Ngôn ngữ lập trình: Javascript, Typescript, Go.

 Các công nghệ khác: WebSocket (SocketIO).

‒ Đối tượng trong phạm vi đề tài hướng đến:

 Người dùng cá nhân hoặc một nhóm người có nhu cầu quản lý quá trình,tiến độ thực hiện công việc.

Phương pháp nghiên cứu

‒ Nghiên cứu từ những website đang có trên thị trường hiện nay như: Stackoverflow, Reddit, Voz,… Từ đó rút ra những ưu, nhược điểm về cả tính năng lẫn giao diện và đưa ra giải pháp cho phần mềm của mình.

‒ Tìm hiểu những công nghệ cần thiết và phù hợp với nhu cầu của đề tài.

‒ Tìm hiểu và áp dụng những kiến trúc, mẫu thiết kế cho từng phần của dự án để đạt hiệu quả tối đa có thể.

‒ Tham khảo ý kiến đóng góp của giảng viên hướng dẫn để phát triển đề tài đạt được kết quả tốt nhất.

CÔNG NGHỆ SỬ DỤNG

Next.js

‒ Next.js là một framework phổ biến trong cộng đồng phát triển web, được sử dụng để xây dựng ứng dụng web React Nó giúp đơn giản hóa quá trình phát triển ứng dụng web bằng cách cung cấp một cấu trúc dự án tự động, hỗ trợ routing, và tích hợp các tính năng như server-side rendering (SSR) và static site generation (SSG)

Những điểm nổi bật của NextJS:

‒ Server-side Page (Pre-)Rendering:

 Server-side rendering là việc chuẩn bị dữ liệu cho một trang ở phía server thay vì client NextJS sẽ pre-render trang, chuẩn bị toàn bộ dữ liệu cần thiết cho một trang Khi một request được gửi đến server, một trang hoàn chỉnh sẽ được cấp phát tới user và search engine crawlers, user sẽ không phải chờ đến khi việc lấy dữ liệu hoàn thành và search engine crawlers cũng có thể thấy được nội dung bên trong trang.

 Đối với các React app thông thường chúng ta cần phải dùng đến React Router và config từng route tương ứng với từng trang Nhưng đối với NextJS nó định nghĩa các trang dựa vào các files được đặt trong 1 thư mục đặc biệt là pages hoặc app Đối với pages, một trang là một React Component được export từ file js, jsx, ts, hoặc tsx Đối với app, một trang sẽ được tạo ra dựa theo file đặc biệt được đặt tên là page.

 NextJS được xem là một fullstack framework, bởi vì chúng ta có thể dễ dàng thêm backend code vào project Trước đây nếu chúng ta muốn lấy dữ liệu từ database, thì cần phải có API và xây dựng một REST API project độc lập Nhưng với NextJS, tất cả chỉ xảy ra trong một project duy nhất, chúng ta vừa có client code, vừa có backend code được gói gọn vào một project.

‒ Hỗ trợ SSR tích hợp để tăng hiệu suất và SEO

‒ Ứng dụng Next.js tải nhanh hơn đáng kể so với ứng dụng React do được render phía Server.

‒ Hỗ trợ các tính năng cho static web.

‒ Đối với những ai đã có kinh nghiệm làm việc với React thì việc tiếp tập NextJS sẽ là một việc dễ dàng.

‒ Tự động code splitting cho các page nhằm tối ưu hoá performance khi load trang.

‒ Dễ dàng xây dựng các API internal thông qua các API routes tích hợp sẵn và tạo các endpoint API.

‒ Hỗ trợ tích hợp cho route cho page, CSS, JSX và TypeScript.

‒ Nhanh chóng thêm các plugin để tùy chỉnh Next.js theo nhu cầu của trang cụ thể.

ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook để xây dựng User Interface (UI) cho các ứng dụng web Nó được ra mắt lần đầu vào năm 2013 và đã nhận được sự yêu thích và sự lan rộng rãi từ đó

Một số điểm nổi bật của ReactJS:

‒ Component-Based Architecture: React tuân theo một kiến trúc dựa trên component, trong đó giao diện người dùng được chia thành các component nhỏ, có thể tái sử dụng Mỗi component đóng gói logic và giao diện của riêng nó, và chúng có thể được kết hợp và lồng nhau để xây dựng giao diện phức tạp.

‒ DOM ảo (Virtual DOM): React sử dụng một DOM ảo (Virtual DOM) để tối ưu hóa hiệu suất hiển thị DOM ảo là một phiên bản nhẹ của DOM thực tế, và React sử dụng nó để theo dõi các thay đổi và cập nhật chỉ các phần cần thiết của UI.

‒ JSX: JSX (JavaScript XML) là một cú pháp mở rộng được sử dụng trong React để viết mã tương tự HTML trực tiếp trong JavaScript JSX cho phép kết hợp HTML và JavaScript một cách khai báo và trực quan hơn.

‒ Luồng dữ liệu một chiều (Uni-directional Data Flow): React tuân theo một luồng dữ liệu một chiều, còn được gọi là one-way data binding Điều này có nghĩa là dữ liệu chảy từ các component cha tới các component con thông qua các thuộc tính (props), và bất kỳ thay đổi trong các thành phần con không ảnh hưởng trực tiếp đến các thành phần cha.

‒ React Hooks: Được giới thiệu từ phiên bản React 16.8, React Hooks là các hàm cho phép sử dụng trạng thái và các tính năng React khác trong các functional component Hooks cho phép các functional component có trạng thái cục bộ, quản lý các hiệu ứng phụ (side effects) và tận dụng các lifecycle method của React mà không cần sử dụng các class component.

‒ React Router: React Router là một thư viện phổ biến cung cấp tính năng định tuyến (routing) khai báo cho các ứng dụng React Nó cho phép định nghĩa các đường dẫn khác nhau và các thành phần tương ứng của chúng, giúp điều hướng giữa các giao diện khác nhau trong một ứng dụng đơn trang (single- page application).

‒ Hiệu suất cao: ReactJS sử dụng cơ chế gọi là Virtual DOM (DOM ảo) để quản lý các thay đổi trong giao diện người dùng Thay vì cập nhật toàn bộ DOM, ReactJS chỉ cập nhật những phần cần thiết, giúp tăng hiệu suất và tăng tốc độ tải trang.

‒ Tính tái sử dụng cao: ReactJS khuyến khích việc xây dựng các thành phần

UI để có thể tái sử dụng Bằng cách sử dụng các component độc lập và có khả năng tái sử dụng, chúng ta có thể xây dựng giao diện người dùng linh hoạt và dễ bảo trì.

‒ Quản lý trạng thái dễ dàng: ReactJS sử dụng khái niệm "one-way data flow" (luồng dữ liệu một chiều), điều này giúp dễ dàng quản lý trạng thái của ứng dụng Dữ liệu trong ReactJS được truyền xuống các component con thông qua props, và bất kỳ thay đổi nào đều được xử lý thông qua hàm gọi

‒ Cộng đồng lớn: ReactJS có một cộng đồng rộng lớn và năng động Hiện nay có rất nhiều tài liệu, ví dụ và thư viện hữu ích trong quá trình phát triển.

Redux

‒ Redux là một thư viện quản lý trạng thái ứng dụng trong JavaScript Nó được sử dụng chủ yếu trong các ứng dụng React, nhưng cũng có thể được sử dụng trong các framework JavaScript khác hoặc ngữ cảnh không liên quan đến React.

‒ Redux giúp quản lý trạng thái ứng dụng một cách dễ dàng Nó áp dụng kiến trúc Flux, nơi dữ liệu trong ứng dụng được lưu trữ trong một "store" duy nhất Trạng thái của ứng dụng chỉ có thể được thay đổi thông qua các

"actions", và các hành động này được xử lý bởi các "reducers".

‒ Dưới đây là một số khái niệm quan trọng trong Redux:

 Store: lưu trạng thái ứng dụng và nó là duy nhất trong bất kỳ một ứng dụng Redux nào Có thể access các state được lưu, update state, và đăng ký or hủy đăng ký các listeners thông qua helper methods.

 Action: đơn giản là các events Chúng là cách mà chúng ta send data từ app đến Redux store Những data này có thể là từ sự tương tác của user vs app, API calls hoặc cũng có thể là từ form submission.

 Reducer: là các function nguyên thủy chúng lấy state hiện tại của app,thực hiện một action và trả về một state mới Những states này được lưu như những objects và chúng định rõ cách state của một ứng dụng thay đổi trong việc phản hồi một action được gửi đến store.

Hình 2.4 Kiến trúc của Redux

‒ Quản lý trạng thái ứng dụng dễ dàng: Redux giúp quản lý trạng thái của ứng dụng một cách rõ ràng và có cấu trúc Trạng thái được lưu trữ trong một nguồn duy nhất gọi là "store", giúp đơn giản hóa việc theo dõi và cập nhật trạng thái của ứng dụng.

‒ Dễ dàng theo dõi và gỡ lỗi: Với Redux, mọi thay đổi trạng thái trong ứng dụng đều được ghi lại trong các hành động (actions) Điều này giúp dễ dàng theo dõi và xác định nguyên nhân của các thay đổi trong trạng thái ứng dụng, tạo điều kiện thuận lợi cho việc gỡ lỗi.

‒ Tái sử dụng code: Redux khuyến khích việc tách biệt logic xử lý dữ liệu và giao diện người dùng Điều này giúp tạo ra các hàm reducers có thể tái sử dụng, đồng thời giảm thiểu sự phụ thuộc giữa các thành phần khác nhau trong ứng dụng.

‒ Cộng đồng mạnh mẽ và hỗ trợ tốt: Redux có một cộng đồng lớn và phong phú, với nhiều tài liệu, ví dụ và các thư viện hỗ trợ phát triển.

MongoDB

‒ MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ, mã nguồn mở, hướng tài liệu (Document-Oriented) MongoDB được phát triển bởi MongoDB Inc và ra mắt vào tháng hai năm 2009.

‒ MongoDB lưu trữ dữ liệu trong document kiểu JSON (Binary JSON) thay vì dạng bảng như các hệ sở dữ liệu quan hệ nên công việc truy vấn sẽ rất nhanh.

‒ Những điểm mạnh của MongoDB bao gồm:

 Linh hoạt: Các document của MongoDB không yêu cầu phải có một Schema cố định như các hệ quản trị cơ sở dữ liệu quan hệ.

 Dễ dàng mở rộng: MongoDB hỗ trợ tốt trong khả năng mở rộngtheo chiều ngang (Horizontal Scalability), nghĩa là khi cần nâng cao hiệu năng lưu trữ và truy xuất, chúng ta chỉ cần bổ sung thêm server.

 Hiệu năng cao: MongoDB lưu trữ dữ liệu dưới dạng Bson và truy vấn sử dụng ngôn ngữ MQL (MongoDB Query Language) nên có hiệu suất truy vấn cao.

‒ MongoDB lưu trữ dữ liệu dưới dạng Bson, được xây dựng dựa trên Json và sử dụng ngôn ngữ MQL, được xây dựng dựa trên JavaScript Vì thế hệ quản trị cơ sở dữ liệu sẽ tương thích tốt với lại server được xây dựng bằng JavaScript, từ đó nâng cao tốc độ phát triển.

‒ MongoDB dễ dàng cài đặt, tương thích mọi nền tảng, từ đó dễ dàng triển khai MongoDB trên bất kỳ hệ điều hành nào.

‒ MongoDB cho hiệu suất đọc ghi cao, dễ dàng mở rộng khi phát triển.

Golang

Hình 2.6 Logo ngôn ngữ lập trình Go

‒ Go là một ngôn ngữ lập trình được thiết kế dựa trên tư duy lập trình hệ thống Go được phát triển bởi Robert Griesemer, Rob Pike và Ken Thompson tại Google vào năm 2007.

‒ Điểm mạnh của Go là bộ thu gom rác và hỗ trợ lập trình đồng thời (tương tự như đa luồng – multithreading)

‒ Go là một ngôn ngữ biên dịch như C/C++, Java, Pascal… Go được giới thiệu vào năm 2009 và được sử dụng hầu hết trong các sản phẩm của Google.

 Hỗ trợ khai báo kiểu dữ liệu động.

 Tốc độ biên dịch nhanh.

 Hỗ trợ các tác vụ đồng thời.

 Ngôn ngữ đơn giản, ngắn gọn.

‒ Go có goroutines thay cho threads:

 Goroutine có ngăn xếp phân khúc có thể mở rộng (growable segmented stacks) Điều này có nghĩa là nó sẽ sử dụng nhiều bộ nhớ RAM hơn nếu điều đó là cần thiết.

 Goroutines có thời gian khởi động nhanh hơn là threads.

 Goroutines có các channel và giữa các channel này có thể giao tiếp với nhau.

 Goroutines có khóa mutex (mutex locking) để đảm bảo việc đọc và ghi vào một cấu trúc dữ liệu hay một biến chung không xảy ra xung đột.

‒ Go là ngôn ngữ lập trình biên dịch (compiled programing language) Go giao tiếp trực tiếp với vi xử lý bằng mã nhị phân (binaries) nên cho hiệu suất cao hơn hẳn so với Java hay Python.

‒ Code Go rất dễ dàng bảo trì và mở rộng.

‒ Google là nhà phát triển của Go.

AWS S3

‒ Amazon Simple Storage Service (S3) là một dịch vụ lưu trữ đám mây được cung cấp bởi Amazon Web Services (AWS) Nó là một dịch vụ lưu trữ đối tượng, cho phép người dùng lưu trữ và truy xuất dữ liệu từ bất kỳ đâu trên internet thông qua giao thức HTTP hoặc HTTPS.

‒ AWS S3 là một phần quan trọng của dịch vụ lưu trữ đám mây của Amazon, mang lại khả năng mở rộng linh hoạt và đáng tin cậy cho các tổ chức và cá nhân.

‒ S3 cung cấp khả năng lưu trữ không giới hạn, giúp người dùng mở rộng dung lượng lưu trữ một cách dễ dàng theo nhu cầu của họ Dịch vụ này cũng hỗ trợ các tính năng như quản lý phiên bản (versioning), mã hóa dữ liệu, và quản lý quyền truy cập chi tiết thông qua chính sách quyền (IAM policies) và cơ chế chữ ký số.

‒ AWS S3 không chỉ là nơi lưu trữ dữ liệu mà còn là một phần của nền tảng để xây dựng các ứng dụng và dịch vụ Nó tích hợp tốt với các dịch vụ khác trong hệ sinh thái của AWS, như AWS Lambda, Amazon Glacier, và Amazon CloudFront, để tạo ra các giải pháp đầy đủ và linh hoạt cho nhu cầu lưu trữ và phân phối dữ liệu.

‒ Khả năng mở rộng và đáng tin cậy: AWS S3 cung cấp khả năng mở rộng lưu trữ không giới hạn, giúp đảm bảo sẵn sàng và đáng tin cậy cho các ứng dụng và dịch vụ trên nền tảng AWS.

‒ Quản lý phiên bản (Versioning): AWS S3 hỗ trợ quản lý phiên bản, cho phép lưu trữ và theo dõi nhiều phiên bản của một đối tượng, giúp bảo vệ dữ liệu trước các lỗi người dùng hoặc sự mất mát không mong muốn.

‒ Quản lý quyền truy cập chi tiết: S3 cho phép xác định và kiểm soát quyền truy cập đối với các đối tượng thông qua IAM policies và Access Control Lists (ACLs), giúp bảo vệ tính toàn vẹn và bảo mật dữ liệu.

‒ Mã hóa dữ liệu: AWS S3 hỗ trợ các tùy chọn mã hóa dữ liệu để đảm bảo rằng dữ liệu được bảo vệ trong quá trình truyền và lưu trữ.

‒ Quản lý sự kiện (Event Management): S3 cho phép người dùng định cấu hình sự kiện để tự động kích hoạt các hành động như triển khai Lambda function, thông báo SNS, hoặc ghi log vào Amazon CloudWatch khi có sự

Socket.IO

‒ Khi làm việc về vấn đề giao tiếp giữa Server và Client, đặc biệt là vấn đề Server, Client có thể nhận biết sự thay đổi của đối phương, những nhà phát triển thường sử dụng rất nhiều phương pháp mà có thể kể đến như: AJAX, HTML5, server-sent events, Tuy nhiên các phương pháp này đều tồn tạinhiều nhược điểm như chậm, tốn tài nguyên Do đó, Socket.IO đã được phát triển để giải quyết vấn đề này, đặc biệt là các ứng dụng có yêu cầu tính thời gian thực.

‒ Socket.IO là 1 module trong NodeJS, được phát triển vào năm 2010 Mục đích lớn nhất để Socket.io ra đời là việc giao tiếp ngay tức khắc giữa Client và Server.

‒ Hiện nay các website về diễn đàn cộng đồng đang có xu hướng phát triển với các tính năng yêu cầu thời gian thực như bình luận, thông báo…Nên nhóm đã xem xét và đưa những tính năng này vào đồ án với việc cài đặt hệ thống thời gian thực sử dụng Socket.IO.

‒ Dù là một module trong NodeJS nhưng hiện nay Socket.IO đã có package cho ngôn ngữ Go.

‒ Bảo mật cao: SocketIO được xây dựng dựa trên Engine.IO, nó sẽ khởi chạy phương thức Long-polling đầu tiên, sau đó sẽ tới những phương thức kết nối tốt hơn Bên cạnh việc thiết lập chặt chẽ đó, Socket.IO còn tự tạo các kết nối bảo mật như: Proxy,

THIẾT KẾ HỆ THỐNG

Xây dựng hệ thống

Hình 3.9 Kiến trúc hệ thống

3.1.2 Mô tả các thành phần trong kiến trúc hệ thống

Bảng 3.1 Bảng mô tả các thành phần của kiến trúc hệ thống

Giao diện của ứng dụng, chịu trách nhiệm hiển thị thông tin và tiếp nhận hành vi người dùng

API (Application Programming Interface) là giao diện lập trình ứng dụng giúp tạo ra các phương thức kết nối với các thư viện và ứng dụng khác nhau.

RestAPI là một tiêu chuẩn để viết API (Web Services), nó chú trọng vào tài nguyên hệ thống và các tài nguyên được truyền tải qua các HTTP Method (GET, POST, PUT, PATCH, DELETE…)

4 Socket.IO Nơi lắng nghe các thông báo sự kiện từ

Controller Nơi tiếp nhận các yêu cầu của Front-End

6 Service Là Business Logic Layer, đóng vai trò xử lí logic của ứng dụng

7 Repository Là Data Access Layer, đóng vai trò dữ liệu

(lấy dữ liệu từ DB, lưu trữ dữ liệu…)

Là nơi lưu trữ dữ liệu, ở đây sử dụng MongoDB, một Database lưu dữ liệu dưới dạng Documents

Là nơi lưu trữ các file tệp (hình ảnh, âm thanh)

Phân tích yêu cầu

‒ Người dùng dùng email và mật khẩu để đăng ký, kèm với đó là những thông tin khác như ngày sinh, họ tên.

‒ Email được sử dụng phải chưa tồn tại trong hệ thống.

‒ Phải xác nhận email để hoàn tất quá trình đăng ký.

‒ Người dùng dùng email và mật khẩu đã được đăng ký để đăng nhập vào hệ thống và sử dụng ứng dụng.

‒ Ngoài ra, người dùng có thể dùng tài khoản Google để trực tiếp đăng nhập vào ứng dụng.

‒ Người dùng được xem danh sách workspace với tư cách là thành viên.

‒ Trong mỗi workspace sẽ có chứa danh sách thành viên và danh sách các bảng của workspace đó.

‒ Người dùng xem chi tiết bảng khi nhấn vào bảng trong workspace hoặc tạo mới một bảng.

‒ Trong một bảng chứa nhiều cột thể hiện các trạng thái khác nhau của nhiệm vụ trong dự án.

‒ Trong một cột chứa các thẻ có cùng trạng thái, mỗi thẻ thể hiện một nhiệm vụ của dự án.

‒ Trong mỗi thẻ có các chi tiết thể hiện tính chất của nhiệm vụ như nhãn dán, thời gian, người được giao, checklist, bình luận…

3.2.5 Tìm kiếm bảng, thẻ, workspace

‒ Người dùng có thể tìm kiếm bảng, thẻ, workspace dựa trên tên hoặc nội dung của các thành phần đó.

‒ Kết quả tìm kiếm sẽ được phân loại theo mức liên quan từ trên xuống dưới,được chia ra theo từng thành phần bao gồm bảng, thẻ, workspace.

‒ Bảng chỉ được tạo khi người tạo bảng là một thành viên của workspace.

‒ Bảng tạo mới sẽ chỉ có tên bảng, không có cột hoặc thẻ trong bảng

‒ Thẻ được tạo khi người tạo thẻ là một thành viên của bảng.

‒ Sau khi tạo thẻ, người dùng có thể nhấn trực tiếp vào thẻ để chỉnh sửa những chi tiết thẻ như nhãn dán, ảnh cover, gán người dùng, tên thẻ, mô tả chi tiết, bình luận…

3.2.8 Quản lý thông tin tài khoản cá nhân

‒ Người dùng được phép chỉnh sửa thông tin cá nhân bao gồm: họ tên, ngày sinh, mật khẩu,…Nhưng không cho phép sửa email.

3.2.9 Chat với trợ lý ảo

‒ Trong quá trình sử dụng ứng dụng, có thể chọn tuỳ chọn chat với trợ lý ảo với dữ liệu lấy từ GPT 3.5 sẽ giúp người dùng thuận lợi hơn rất nhiều trong xử lý công việc.

‒ Bên cạnh đó còn có tuỳ chọn tóm tắt nội dung của bảng theo nhiều mục khác nhau giúp người dùng có thêm nhiều góc nhìn với dự án đang thực hiện.

Thiết kế hệ thống

3.3.1 Sơ đồ Use-case tổng quát

3.3.1.1 Sơ đồ Use Case của người dùng chưa đăng nhập

Hình 3.10 Sơ đồ Use Case của người dùng chưa đăng nhập

3.3.1.2 Sơ đồ Use Case của người dùng đã đăng nhập

Hình 3.11 Sơ đồ Use Case của người dùng đã đăng nhập

Bảng 3.2 Bảng danh sách Actor

1 Người dùng chưa đăng nhập Người dùng sử dụng phần mềm nhưng chưa đăng nhập

2 Người dùng đã đăng nhập Người dùng sử dụng phần mềm và đã đăng nhập vào hệ thống

Bảng 3.3 Danh sách Use Case

T Use Case Actor Mô tả

1 Đăng ký Người dùng chưa đăng nhập Tạo tài khoản mới

2 Đăng nhập Người dùng chưa đăng nhập Đăng nhập bằng tài khoản đã đăng ký

Người dùng chưa đăng nhập Đăng nhập bằng tài khoản Google

4 Quên mật khẩu Người dùng chưa đăng nhập

Người dùng quên mật khẩu và cần đặt lại mật khẩu mới

5 Quản lý thông tin tài khoản

Người dùng đã đăng nhập

Xem thông tin tài khoản đang đăng nhập

6 Sửa thông tin tài khoản

Người dùng đã đăng nhập

Sửa thông tin tài khoản đang đăng nhập

7 Đổi mật khẩu Người dùng đã đăng nhập Đổi mật khẩu của tài khoản đang đăng nhập

Người dùng đã đăng nhập Xem danh sách workspace

9 Tạo workspace Người dùng đã đăng nhập Tạo workspace mới

Người dùng đã đăng nhập Sửa thông tin workspace

11 Quản lý thành viên workspace

Người dùng đã đăng nhập

Quản lý thành viên của workspace

12 Quản lý bảng Người dùng đã đăng nhập Xem danh sách bảng

13 Tạo bảng Người dùng đã đăng nhập Tạo bảng mới

14 Chỉnh sửa bảng Người dùng đã đăng nhập Chỉnh sửa thông tin bảng

15 Xoá bảng Người dùng đã đăng nhập Xoá bảng

16 Quản lý thành viên bảng

Người dùng đã đăng nhập Quản lý thành viên của bảng

17 Xem thống kê dữ liệu bảng

Người dùng đã đăng nhập

Xem các biểu đồ thống kê dữ liệu của bảng theo nhiều mục

18 Quản lý cột Người dùng đã đăng nhập Xem danh sách cột trong bảng

19 Tạo cột Người dùng đã đăng nhập Tạo cột mới

20 Chỉnh sửa cột Người dùng đã đăng nhập Chỉnh sửa thông tin cột

21 Xoá cột Người dùng đã đăng nhập Xoá cột

22 Quản lý thẻ Người dùng đã đăng nhập Xem danh sách thẻ trong bảng

23 Tạo thẻ Người dùng đã đăng nhập Tạo thẻ mới

24 Chỉnh sửa thẻ Người dùng đã đăng nhập Chỉnh sửa thông tin thẻ

25 Xoá thẻ Người dùng đã đăng nhập Xoá thẻ

26 Thông báo Người dùng đã đăng nhập Thông báo

27 Chat với trợ lý ảo Người dùng đã đăng nhập Chat với trợ lý ảo thông minh

28 Tóm tắt nội dung bảng

Người dùng đã đăng nhập

Tóm tắt dữ liệu của bảng một cách ngắn gọn

3.3.4.1 Đặc tả Use Case Đăng ký

Bảng 3.4 Use Case Đăng ký

Tên Use Case Đăng ký

Tóm tắt Chức năng đăng ký tài khoản mới.

Dòng sự kiện chính 1 Người dùng nhập thông tin tài khoản và nhấn “Đăng ký".

2 Hệ thống kiểm tra thông tin đăng ký.

3 Hệ thống gửi link để xác nhận tài khoản qua email đã đăng ký.

4 Người dùng nhấn vào link xác nhận để xác nhận tài khoản và hoàn tất đăng ký tài khoản.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Thông tin đăng ký không đạt yêu cầu:

Hệ thống hiển thị thông báo thông tin đăng ký không hợp lệ.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng chưa đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng tạo thành công tài khoản và xác thực để đăng nhập vào hệ thống Điểm mở rộng Không có

3.3.4.2 Đặc tả Use Case Đăng nhập

Bảng 3.5 Use Case Đăng nhập

Tên Use Case Đăng nhập

Tóm tắt Chức năng đăng nhập vào hệ thống.

Dòng sự kiện chính 1 Hệ thống hiển thị form đăng nhập.

2 Người dùng nhập tên đăng nhập và mật khẩu (cả 2 trường này đều bắt buộc nhập) và nhấn “Đăng nhập”.

3 Hệ thống kiểm tra thông tin đăng nhập

4 Hệ thống hiển thị màn hình chính.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Thông tin đăng nhập sai:

Hệ thống hiển thị thông báo tài khoản đăng nhập không hợp lệ.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng chưa đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng đăng nhập thành công vào hệ thống, có thể sử dụng các quyền mà hệ thống cho phép Điểm mở rộng Không có

1.1.1.1 Đặc tả Use Case Đăng nhập với Goole

Bảng 3.6 Use Case Đăng nhập với Google

Tên Use Case Đăng nhập với Google

Tóm tắt Chức năng đăng nhập vào hệ thống bằng tài khoản

Dòng sự kiện chính 1 Người dùng nhấn vào nút Login with Google, hệ thống hiển thị cửa sổ cho phép người dùng đăng nhập bằng tài khoản Google.

2 Sau khi đăng nhập Google thành công, hệ thống sẽ chuyển về trang chủ với trạng thái đã đăng nhập.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại 1 Thông tin đăng nhập sai: lệ Hệ thống hiển thị thông báo tài khoản đăng nhập không hợp lệ.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng chưa đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng đăng nhập thành công vào hệ thống, có thể sử dụng các quyền mà hệ thống cho phép Điểm mở rộng Không có

3.3.4.3 Đặc tả Use Case Quên mật khẩu

Bảng 3.7 Use Case Quên mật khẩu

Tên Use Case Đăng nhập

Tóm tắt Chức năng lấy lại mật khẩu mà người dùng quên.

Dòng sự kiện chính 1 Người dùng nhập email của tài khoản cần lấy lại mật khẩu và nhấn “Lấy lại mật khẩu”.

2 Hệ thống kiểm tra email có tồn tại hay không.

3 Hệ thống gửi link để đặt lại mật khẩu qua email đã nhập.

4 Người dùng nhấn vào link và nhập mật khẩu mới, xác nhận mật khẩu mới, sau đó nhấn “Đặt lại mật khẩu” để hoàn tất việc đặt lại mật khẩu.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Email không hợp lệ hoặc không tồn tại trong hệ thống:

Hệ thống thông báo email không hợp lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng chưa đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống cung cấp mã xác thực qua email để người dùng lấy lại mật khẩu. Điểm mở rộng Không có

3.3.4.4 Đặc tả Use Case Quản lý thông tin tài khoản

Bảng 3.8 Use Case Quản lý thông tin tài khoản

Tên Use Case Quản lý thông tin tài khoản

Tóm tắt Quản lý được thông tin tài khoản, bài viết

Dòng sự kiện chính 1 Hệ thống hiển thị thông tin của tài khoản

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Dữ liệu không hợp lệ:

Hệ thống hiển thị thông báo thay đổi thông tin không thành công do dữ liệu không hợp lệ.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực

Bình thường Điểm mở rộng Không có

3.3.4.5 Đặc tả Use Case Sửa thông tin tài khoản

Bảng 3.9 Use Case Sửa thông tin tài khoản

Tên Use Case Sửa thông thông tin tài khoản

Tóm tắt Sửa thông tin của tài khoản cá nhân

Dòng sự kiện chính 1 Người dùng nhập tên, ngày sinh, … cần thay đổi vào các ô tương ứng và nhấn “Cập nhật thông tin”.

2 Hệ thống kiểm tra tính hợp lệ của dữ liệu.

3 Thông tin tài khoản được thay đổi và hiển thị trên màn hình.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Dữ liệu không hợp lệ:

Hệ thống hiển thị thông báo thay đổi thông tin không thành công do dữ liệu không hợp lệ.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Thông tin người dùng được cập nhật theo dữ liệu đã nhập. Điểm mở rộng Không có

3.3.4.6 Đặc tả Use Case Đổi mật khẩu

Bảng 3.10 Use Case Đổi mật khẩu

Tên Use Case Đổi mật khẩu

Tóm tắt Đổi mật khẩu của tài khoản hiện tại

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Đổi mật khẩu”.

2 Hệ thống hiển thị Dialog Đổi mật khẩu.

3 Người dùng nhập mật khẩu cũ và mật khẩu mới.

4 Hệ thống kiểm tra tính hợp lệ của dữ liệu và cập nhật mật khẩu mới.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Dữ liệu không hợp lệ:

Hệ thống hiển thị thông báo thay đổi thông tin không thành công do dữ liệu không hợp lệ.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Mật khẩu mới của người dùng được cập nhật Điểm mở rộng Không có

3.3.4.7 Đặc tả Use Case Quản lý workspaces

Bảng 3.11 Use Case Quản lý workspaces

Tên Use Case Quản lý workspaces

Tóm tắt Xem danh sách các workspaces

Dòng sự kiện chính 1 Hệ thống hiển thị sẵn danh sách workspaces mà người dùng là thành viên.

2 Người dùng bấm vào workspace.

3 Hệ thống hiển thị thông tin chi tiết của workspace đó.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng có thể xem thông tin các workspaces mà người dùng là thành viên. Điểm mở rộng Không có

3.3.4.8 Đặc tả Use Case Tạo workspace

Bảng 3.12 Use Case Tạo workspace

Tên Use Case Tạo workspace

Tóm tắt Tạo workspace mới

Dòng sự kiện chính 1 Người dùng nhấn nút “Create” bên trên thành menu

2 Nhập tên của workspace cần tạo.

3 Tạo thành công, hệ thống hiển thị danh sách workspace mới.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Workspace mới có tên trùng với workspace đã có.

2 Hệ thống hiển thị thông báo lỗi trùng tên.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị danh sách workspaces mới có chứa workspace vừa tạo. Điểm mở rộng Không có

3.3.4.9 Đặc tả Use Case Chỉnh sửa workspace

Bảng 3.13 Use Case Chỉnh sửa workspace

Tên Use Case Chỉnh sửa workspace

Tóm tắt Chỉnh sửa thông tin workspace

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Edit” bên cạnh tên của workspace.

2 Nhập tên mới cho workspace.

3 Hệ thống hiển thị cập nhật thành công.

4 Hệ thống hiển thị workspace có tên mới cập nhật.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Workspace mới cập nhật có tên trùng với workspace đã có.

2 Hệ thống hiển thị thông báo lỗi trùng tên.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Người dùng phải là admin của workspace

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị thông tin mới cập nhật của workspace. Điểm mở rộng Không có

3.3.4.10 Đặc tả Use Case Quản lý thành viên workspace

Bảng 3.14 Use Case Quản lý thành viên workspace

Tên Use Case Quản lý thành viên workspace

Tóm tắt Xem thông tin và thêm bớt thành viên của workspace

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Members” của workspace

2 Hệ thống hiển thị danh sách thành viên của workspace.

3 Người dùng nhấn nút “Add” để thêm thành viên.

4 Người dùng tìm kiếm người dùng muốn thêm bằng email và chọn “Add”.

5 Hệ thống hiển thị danh sách thành viên viên mới.

Dòng sự kiện khác 1 Người dùng nhấn nút “Remove” bên cạnh tên thành viên muốn xoá.

2 Hệ thống hiển thị xoá thành công và hiển thị danh sách thành viên mới cập nhật sau khi xoá

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng có thể xem danh sách thành viên và thực hiện các thao tác thêm bớt thành viên của workspace. Điểm mở rộng Không có

3.3.4.11 Đặc tả Use Case Quản lý bảng

Bảng 3.15 Use Case Quản lý bảng

Tên Use Case Quản lý bảng

Tóm tắt Xem danh sách các bảng

Dòng sự kiện chính 1 Người dùng nhấn vào workspace.

2 Hệ thống hiển thị sẵn danh sách bảng mà người dùng là thành viên.

3 Người dùng bấm vào bảng.

4 Hệ thống hiển thị thông tin chi tiết của bảng đó.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng có thể xem thông tin các bảng mà người dùng là thành viên. Điểm mở rộng Không có

3.3.4.12 Đặc tả Use Case Tạo bảng

Bảng 3.16 Use Case Tạo bảng

Tên Use Case Tạo bảng

Dòng sự kiện chính 1 Người dùng nhấn nút “Create” bên trên thành menu của workspace.

2 Nhập tên của bảng cần tạo.

3 Tạo thành công, hệ thống hiển thị danh sách bảng mới.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Bảng mới có tên trùng với bảng đã có.

2 Hệ thống hiển thị thông báo lỗi trùng tên.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị danh sách workspaces mới có chứa workspace vừa tạo. Điểm mở rộng Không có

3.3.4.13 Đặc tả Use Case Chỉnh sửa bảng

Bảng 3.17 Use Case Chỉnh sửa bảng

Tên Use Case Chỉnh sửa bảng

Tóm tắt Chỉnh sửa thông tin bảng

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Edit” bên cạnh tên của bảng.

2 Nhập tên mới cho bảng.

3 Hệ thống hiển thị cập nhật thành công.

4 Hệ thống hiển thị bảng có tên mới cập nhật.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

1 Bảng mới cập nhật có tên trùng với bảng đã có.

2 Hệ thống hiển thị thông báo lỗi trùng tên.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị thông tin mới cập nhật của bảng. Điểm mở rộng Không có

3.3.4.14 Đặc tả Use Case Xoá bảng

Bảng 3.18 Use Case Xoá bảng

Tên chức năng Xoá bảng

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Delete” bên cạnh thông tin bảng.

2 Hệ thống hiển thị xoá thành công.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Người dùng là admin của bảng

Trạng thái hệ thống sau khi thực hiện use case

Dữ liệu của bảng bị xoá đi. Điểm mở rộng Không có

3.3.4.15 Đặc tả Use Case Quản lý thành viên bảng

Bảng 3.19 Use Case Quản lý thành viên bảng

Tên Use Case Quản lý thành viên bảng

Tóm tắt Xem thông tin và thêm bớt thành viên của bảng

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Members” của bảng.

2 Hệ thống hiển thị danh sách thành viên của bảng.

3 Người dùng nhấn nút “Add” để thêm thành viên.

4 Người dùng tìm kiếm người dùng muốn thêm bằng email và chọn “Add”.

5 Hệ thống hiển thị danh sách thành viên viên mới.

Dòng sự kiện khác 1 Người dùng nhấn nút “Remove” bên cạnh tên thành viên muốn xoá.

2 Hệ thống hiển thị xoá thành công và hiển thị danh sách thành viên mới cập nhật sau khi xoá

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng có thể xem danh sách thành viên và thực hiện các thao tác thêm bớt thành viên của bảng. Điểm mở rộng Không có

3.3.4.16 Đặc tả Use Case Xem thống kê dữ liệu bảng

Bảng 3.20 Use Case Xem thống kê dữ liệu bảng

Tên chức năng Xem thống kê dữ liệu bảng

Tóm tắt Xem thống kê dữ liệu bảng

Dòng sự kiện chính 1 Người dùng nhấn biểu tượng biểu đồ bên phải bảng.

2 Hệ thống hiển thị biểu đồ thống kê dữ liệu bảng.

Dòng sự kiện khác 1 Người dùng nhấn chọn kiểu biểu đồ.

2 Hệ thống hiển thị dữ liêu theo loại biểu đồ được chọn.

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập (Member) Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị dữ liệu theo biểu đồ được chọn. Điểm mở rộng Không có

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Là Moderator hoặc Admin

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách bài viết của chủ đề Điểm mở rộng Không có

3.3.4.17 Đặc tả Use Case Quản lý cột

Bảng 3.21 Use Case Quản lý cột

Tên Use Case Quản lý cột

Tóm tắt Xem danh sách các cột

Dòng sự kiện chính 1 Người dùng nhấn vào bảng.

2 Hệ thống hiển thị sẵn danh sách cột của bảng.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng có thể xem thông tin các các cột của bảng. Điểm mở rộng Không có

3.3.4.18 Đặc tả Use Case Tạo cột

Bảng 3.22 Use Case Tạo cột

Tên Use Case Tạo cột

Dòng sự kiện chính 1 Người dùng nhấn nút “Create” bên cạnh danh sách cột.

2 Nhập tên của cột cần tạo.

3 Tạo thành công, hệ thống hiển thị danh sách cột mới.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị danh sách cột mới có chứa cột vừa tạo. Điểm mở rộng Không có

3.3.4.19 Đặc tả Use Case Chỉnh sửa cột

Bảng 3.23 Use Case Chỉnh sửa cột

Tên Use Case Chỉnh sửa cột

Tóm tắt Chỉnh sửa thông tin cột

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Edit” bên cạnh tên của cột.

2 Nhập tên mới cho cột.

3 Hệ thống hiển thị cập nhật thành công.

4 Hệ thống hiển thị cột có tên mới cập nhật.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị thông tin mới cập nhật của cột. Điểm mở rộng Không có

3.3.4.20 Đặc tả Use Case Xoá cột

Bảng 3.24 Use Case Xoá cột

Tên chức năng Xoá cột

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Delete” bên cạnh thông tin cột.

2 Hệ thống hiển thị xoá thành công.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Dữ liệu của cột bị xoá đi. Điểm mở rộng Không có

3.3.4.21 Đặc tả Use Case Quản lý thẻ

Bảng 3.25 Use Case Quản lý thẻ

Tên Use Case Quản lý thẻ

Tóm tắt Xem danh sách các thẻ

Dòng sự kiện chính 1 Người dùng nhấn vào bảng.

2 Hệ thống hiển thị sẵn danh sách thẻ theo cột.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Tất cả Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Người dùng có thể xem thông tin các các thẻ của cột. Điểm mở rộng Không có

3.3.4.22 Đặc tả Use Case Tạo thẻ

Bảng 3.26 Use Case Tạo thẻ

Tên Use Case Tạo thẻ

Dòng sự kiện chính 1 Người dùng nhấn nút “Create” bên dưới danh sách thẻ của cột.

2 Nhập tên của thẻ cần tạo.

3 Tạo thành công, hệ thống hiển thị danh sách thẻ mới.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị danh sách thẻ mới có chứa thẻ vừa tạo. Điểm mở rộng Không có

3.3.4.23 Đặc tả Use Case Chỉnh sửa thẻ

Bảng 3.27 Use Case Chỉnh sửa thẻ

Tên Use Case Chỉnh sửa thẻ

Tóm tắt Chỉnh sửa thông tin thẻ

Dòng sự kiện chính 5 Người dùng nhấn vào nút thẻ.

6 Người dùng có thể chỉnh sửa thông tin thẻ: ngày tháng, thành viên, ảnh bìa, nhãn dán

7 Hệ thống hiển thị cập nhật thành công.

8 Hệ thống hiển thị thẻ có thông tin mới cập nhật.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hệ thống hiển thị thông tin mới cập nhật của thẻ. Điểm mở rộng Không có

3.3.4.24 Đặc tả Use Case Xoá thẻ

Bảng 3.28 Use Case Xoá thẻ

Tên chức năng Xoá thẻ

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Delete” bên cạnh tên thẻ.

2 Hệ thống hiển thị xoá thành công.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Dữ liệu của thẻ bị xoá đi. Điểm mở rộng Không có

3.3.4.25 Đặc tả Use Case Thông báo

Bảng 3.29 Use Case Thông báo

Tên Use Case Thông báo

Dòng sự kiện chính 1 Người dùng nhấn vào biểu tượng chuông trên thanh menu.

2 Hệ thống hiển thị danh sách thông báo theo thời gian thực.

3 Người dùng nhấn vào thông báo.

4 Hệ thống hiển thị chi tiết bảng mà thông báo đề cập.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị danh sách thông báo theo thời gian thực. Điểm mở rộng Không có

3.3.4.26 Đặc tả Use Case Chat với trợ lý ảo

Bảng 3.30 Use Case Chat với trợ lý ảo

Tên Use Case Chat với trợ lý ảo

Tóm tắt Chat với trợ lý ảo GPT

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Chat GPT” của bảng.

2 Hệ thống hiển thị khung chat.

3 Nhập câu hỏi hoặc thông tin để trao đổi trực tiếp với trợ lý ảo.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị khung chat với trợ lý ảo Điểm mở rộng Không có

3.3.4.27 Đặc tả Use Case Tóm tắt nội dung bảng

Bảng 3.31 Use Case Tóm tắt nội dung bảng

Tên Use Case Tóm tắt nội dung bảng

Tóm tắt Tóm tắt nội dung bảng

Dòng sự kiện chính 1 Người dùng nhấn vào nút “Chat GPT” của bảng.

2 Hệ thống hiển thị khung chat.

3 Người dùng nhấn vào nút “Sumary”.

4 Hệ thống hiển thị nội dung bảng được tự động tóm tắt bởi AI.

Dòng sự kiện khác Không có

Dòng sự kiện ngoại lệ

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực thiện use case

Actor: Người dùng đã đăng nhập Điều kiện: Không có

Trạng thái hệ thống sau khi thực hiện use case

Hiển thị dữ liệu bảng được tóm tắt. Điểm mở rộng Không có

Thiết kế dữ liệu

Hình 3.12 Sơ đồ Logic hoàn chỉnh

3.4.2 Danh sách các bảng trong cơ sở dữ liệu

Bảng 3.32 Danh sách các bảng trong cơ sở dữ liệu

Tên bảng dữ liệu Mô tả

1 users Lưu trữ thông tin người dùng.

2 workspaces Lưu trữ thông tin các không gian làm việc.

3 boards Lưu trữ thông tin các bảng.

4 columns Lưu trữ thông tin các cột

5 cards Lưu trữ thông tin các thẻ.

6 labels Lưu trữ thông tin của nhãn.

7 workspace_member Lưu trữ thông tin quan hệ thành viên của người s dùng và không gian làm việc.

8 board_members Lưu trữ thông tin quan hệ thành viên của người dùng và bảng.

9 card_attachments Lưu trữ thông tin tệp đính kèm của thẻ.

3.4.3 Mô tả chi tiết các bảng

Bảng 3.33 Mô tả chi tiết bảng users

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null Mã người dùng.

2 name String Not null Tên người dùng.

5 password String Not null Mật khẩu người dùng.

6 birthday Time Not null Ngày sinh người dùng.

7 avatar String Not null Ảnh đại diện người dùng.

8 isVerified Boolean Not null Điều kiện kiểm tra người dùng đã xác thực hay chưa.

9 type String Không Lưu loại người dùng.

10 phoneNumber String Không Lưu số điện thoại người dùng.

11 createdAt Time Not null Lưu thời điểm dữ liệu được tạo

12 updatedAt Time Not null Lưu thời điểm gần nhất dữ liệu được cập nhật

Bảng 3.34 Mô tả chi tiết bảng workspaces

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null Mã workspace.

3 ownerUserId ObjectId FK, Not null

Mã chủ sở hữu workspace

4 image String Not null Ảnh đại diện của workspace

5 createdAt Time Not null Lưu thời điểm dữ liệu được tạo

6 updatedAt Time Not null Lưu thời điểm gần nhất dữ liệu được cập nhật

Bảng 3.35 Mô tả chi tiết bảng boards

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null Mã bảng.

2 workspaceId ObjectId FK, Not null Mã workspace.

3 adminId ObjectId FK, Not null Mã admin bảng.

4 status Boolean Not null Trạng thái bảng

5 createdAt Time Not null Lưu thời điểm dữ liệu được tạo

6 updatedAt Time Not null Lưu thời điểm gần nhất dữ liệu được cập nhật

7 name String Not null Tên bảng

8 orderedColumnId s Array Not null Danh sách mã cột theo thứ tự trong bảng

Bảng 3.36 Mô tả chi tiết bảng columns

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null Mã cột null

3 title String Not null Tên cột

4 orderedCardIds Array Not null Danh sách mã thẻ theo thứ tự trong cột

Bảng 3.37 Mô tả chi tiết bảng cards

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null

2 boardId ObjectId FK, Not null

3 columnId ObjectId FK, Not null

4 labelIds Array Not null Danh sách mã nhãn dán gắn trong thẻ

Not null Danh sách mã thành viên của bảng được gắn trong thẻ

6 title String Not null Tên thẻ

7 description String Not null Mô tả thẻ

8 checklists Array Not null Danh sách checklist có trong thẻ

9 comments Array Not null Danh sách bình luận có trong thẻ

10 startDate Time Không Thời điểm bắt đầu task

11 endDate Time Không Thời điểm kết thúc task

12 cover String Không Ảnh cover của thẻ

13 isDone Boolean Not null Trạng thái hoàn thành của thẻ

14 status Boolean Not null Trạng thái của thẻ

15 createdAt Time Not null Lưu thời điểm dữ liệu được tạo

16 updatedAt Time Not null Lưu thời điểm gần nhất

Bảng 3.38 Mô tả chi tiết bảng labels

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null

2 title String String Tên nhãn dán.

3 boardId ObjectId FK, Not null

Mã bảng mà nhãn dán thuộc về.

4 color String Not null Mã màu hex của nhãn dán

5 status Boolean Not null Trạng thái nhãn dán

Bảng 3.39 Mô tả chi tiết bảng workspace_members

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null

2 workspaceId ObjectId FK, Not null

3 userId ObjectId FK, Not null

Mã người dùng là thành viên của workspace

Hình 3.13 Mô tả chi tiết bảng board_members

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null

2 boardId ObjectId FK, Not null

3 userId ObjectId FK, Not null

Mã người dùng là thành viên của bảng

Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả thuộc tính

1 _id ObjectId PK, Not null

2 boardId ObjectId FK, Not null

3 cardId ObjectId FK, Not null

4 filename String Not null Tên tệp

5 extension String Not null Đuôi mở rộng của tệp

6 status Boolean Not null Trạng thái của tệp

7 createdAt Time Not null Lưu thời điểm dữ liệu được tạo

XÂY DỰNG ỨNG DỤNG

Danh sách màn hình

Bảng 4.39 Bảng danh sách các màn hình

STT Tên màn hình Ý nghĩa

1 Màn hình Đăng nhập Form đăng nhập để người dùng đăng nhập vào trang web

2 Màn hình Đăng ký Form đăng ký để người dùng tạo tài khoản mới

3 Màn hình Khôi phục mật khẩu

Form gửi email xác nhận để người dùng khôi phục mật khẩu

4 Màn hình Thay đổi mật khẩu Form thay đổi mật khẩu tài khoản

Workspace Quản lý các Workspace

6 Màn hình Quản lý Board Quản lý các Board

7 Màn hình Quản lý Card Quản lý các Card

8 Màn hình Quản lý tài khoản Quản lý thông tin tài khoản

9 Màn hình Tìm kiếm Tìm kiếm Workspace, Board, Card

10 Màn hình Thông báo Hiển thị danh sách thông báo

11 Màn hình Light/Dark mode Điều chỉnh chế độ hiển thị sáng hoặc tối

12 Màn hình Trợ lý ảo Tóm tắt công việc và chat với ChatGPT

Chi tiết màn hình

‒ Người dùng có thể sử dụng tài khoản với Email và Mật khẩu để đăng nhập vào trang web.

Hình 4.14 Màn hình Đăng nhập với email và mật khẩu

‒ Ngoài ra, người dùng có thể lựa chọn đăng nhập bằng tài khoản Google

Hình 4.15 Màn hình Đăng nhập với Google

‒ Người dùng cần cung cấp đầy đủ thông tin để tạo tài khoản mới.

‒ Nếu người dùng đã có tài khoản trước đó, họ có thể bấm vào “Đăng nhập” để chuyển đến trang đăng nhập.

Hình 4.16 Màn hình Đăng ký

4.2.3 Màn hình Khôi phục mật khẩu

‒ Khi người dùng quên mật khẩu, họ có thể cung cấp email đã đăng ký với tài khoản, sau đó hệ thống sẽ gửi một email xác thực yêu cầu khôi phục mật khẩu

Hình 4.17 Màn hình Khôi phục mật khẩu

4.2.4 Màn hình Thay đổi mật khẩu

- Khi người dùng bấm vào đường link được đính kèm trong email xác nhận khôi phục mật khẩu, họ sẽ được chuyển đến trang thay đổi mật khẩu.

Hình 4.18 Màn hình Thay đổi mật khẩu

4.2.5 Màn hình Quản lý Workspace

‒ Ở trang chủ, người dùng sẽ nhìn thấy danh sách các Workspace được hiển thị ở cột bên trái, đồng thời những Board của Workspace đó sẽ được hiển thị ở bên phải.

Hình 4.19 Màn hình Quản lý Workspace

‒ Người dùng có thể bấm vào nút dấu cộng của cột bên trái hoặc nút “Create” trên app bar để tạo Workspace mới

Hình 4.20 Màn hình Tạo Workspace

‒ Danh sách Board được chia ra thành các phần “Your boards”, là những boards mà người dùng là admin, hoặc “All boards in this Workspace”, là những boards mà người dùng tham gia.

‒ Ngoài ra, người dùng có thể chọn “Create new board” để tạo board mới

Hình 4.21 Màn hình Tạo Board

‒ Riêng đối với admin của Workspace, họ sẽ có thể xem thời gian biểu chi tiết của tất cả các công việc nằm trong Workspace đó theo từng khung thời gian cụ thể

Hình 4.6 Màn hình Xem thời gian biểu của Workspace

4.2.6 Màn hình Quản lý Board

‒ Ở trang Quản lý Board, người dùng sẽ thấy một giao diện được chia làm 2 phần (không tính phần app bar dành cho toàn ứng dụng): thanh Board Bar và Board Content.

‒ Thanh Board Bar là nơi hiển thị tên Board cũng như cho phép người dùng thực hiện tùy chỉnh và xem một số thông tin, dữ liệu.

‒ Đối với phần Board Content, đây là nơi chứa các Column, trong mỗi Column sẽ bao gồm nhiều Card.

Hình 4.22 Màn hình Quản lý Board

‒ Người dùng có thể lọc Board theo các Label của Board để chỉ hiển thị những Card tương ứng.

Hình 4.23 Màn hình lọc Board theo label

‒ Trang web cho phép theo dõi thời gian biểu của các công việc trong Board.

Hình 4.24 Màn hình Xem thời gian biểu của Board

‒ Người dùng có thể nắm được các số liệu về công việc thông qua các biểu đồ, mỗi biểu đồ phục vụ cho một mục đích cụ thể

Hình 4.25 Màn hình Đánh giá công việc

‒ Người dùng có thể bấm vào nút “Invite” để mời thành viên mới vào trongBoard.

Hình 4.26 Màn hình Thêm thành viên vào Board

‒ Người dùng có thể xem danh sách thành viên hiện tại của Board.

Hình 4.27 Màn hình Xem danh sách thành viên của Board

‒ Người dùng có thể kéo thả để thay đổi thứ tự các Column.

Hình 4.28 Màn hình Kéo thả Column

‒ Người dùng cũng có thể thay đổi thứ tự của các Card trong Column hoặc giữa các Column với nhau

Hình 4.29 Màn hình Kéo thả Card

4.2.7 Màn hình Quản lý Card

‒ Khi người dùng bấm vào một Card bất kỳ, giao diện sẽ hiển thị thông tin chi tiết của Card.

‒ Người dùng có thể thay đổi tên Card, thêm thành viên, label, checklist, ngày bắt đầu và kết thúc, ảnh đại diện cho Card, tệp đính kèm, những kỹ năng liên quan đến Card.

Hình 4.30 Màn hình Quản lý Card

4.2.8 Màn hình Quản lý tài khoản

‒ Ở trang Quản lý tài khoản, người dùng có thể thay đổi thông tin về tài khoản của mình.

‒ Người dùng được phép thay đổi ảnh đại diện, họ có thể lựa chọn hình ảnh và tải lên, sau trang web sẽ lưu lại ảnh đại diện của tài khoản.

‒ Bên cạnh đó, người dùng cũng có thể thay đổi thông tin cá nhân.

‒ Trang web hỗ trợ tính năng thay đổi tài khoản khi người dùng đã đăng nhập, người dùng cần cung cấp đầy đủ và đúng các thông tin để cập nhật lại mật khẩu.

‒ Đối với mỗi tài khoản có thể được thêm nhiều kỹ năng mà người dùng có, để hệ thống có thể dựa vào đó làm cơ sở để đề xuất thành viên phù hợp choCard.

Hình 4.31 Màn hình Quản lý tài khoản

‒ Trên thanh app bar, giao diện có hiển thị một ô input, người dùng có thể nhập từ khóa cần tìm và hệ thống sẽ trả về kết quả bao gồm các Workspace, Board, Card nếu tìm thấy.

Hình 4.32 Màn hình Tìm kiếm

‒ Nếu không tìm được bất kỳ thông tin liên quan nào, trang web hiển thị “No results found”

Hình 4.33 Màn hình Tìm kiếm không có kết quả

‒ Khi người dùng bấm vào nút cái chuông trên thanh app bar, một giao diện sẽ được hiển thị chưa danh sách các thông báo.

‒ Người dùng có thể bật sang chế độ “Only show unread” để chỉ hiển thị những thông báo chưa đọc hoặc tắt đi để hiển thị tất cả các thông báo.

Hình 4.34 Màn hình Thông báo (thông báo chưa đọc)

Hình 4.35 Màn hình Thông báo (tất cả thông báo)

4.2.11 Màn hình Light/Dark mode

‒ Trên thanh app bar, trang web cho phép chọn chế độ hiển thị là Light hoặc Dark.

‒ Khi người dùng thay đổi, toàn bộ ứng dụng sẽ thay đổi màu sắc tương ứng.

Hình 4.36 Màn hình Light mode

Hình 4.37 Màn hình Dark mode

4.2.12 Màn hình Trợ lý ảo

‒ Trong màn hình quản lý Board, người dùng có thể bấm vào nút “AIAssistant”, một giao diện sẽ hiển thị cho phép người dùng trò chuyện với

‒ Người dùng nhập câu hỏi cần giải đáp, ChatGPT sẽ hiển thị câu trả lời tương ứng.

Hình 4.38 Màn hình chat với ChatGPT

‒ Bên cạnh đó, người dùng có thể tổng hợp các công việc hiện tại nhờ AI mà không cần mất quá nhiều công sức.

Hình 4.39 Màn hình Tổng hợp công việc

TỔNG KẾT

Đánh giá

‒ Các thành viên nhóm tích cực tham gia bàn luận, trao đổi để giải quyết vấn đề.

‒ Sử dụng những công cụ như Github, Notion… để quản lý dự án được hiệu quả hơn.

‒ Các thành viên trong nhóm đã từng hợp tác với nhau trong quá khứ nên việc hoà nhập và trao đổi thông tin trở nên dễ dàng, thuận tiện hơn.

‒ Trên thị trường có nhiều website với đề tài tương tự nên tiết kiệm được nhiều thời gian trong việc tìm hiểu và nghiên cứu.

‒ Nhận được sự quan tâm, giúp đỡ nhiệt tình của giảng viên hướng dẫn để cải thiện chất lượng của đồ án.

‒ Đồ án này là lần đầu tiên nhóm quyết định áp dụng những công nghệ mới như Golang, Gin framework, Socket.IO… vào đồ án và gặp nhiều trở ngại khó khăn trong quá trình tìm hiểu cũng như sửa chữa lỗi khi sử dụng.

‒ Sự phân chia thời gian chưa hợp lý nên nhóm đã bị hụt hơi trong giai đoạn cuối Bù lại thì các thành viên phải làm việc nhiều hơn.

‒ Kết thúc đồ án 2, nhóm đã xây dựng được hoàn chỉnh một website quản lý công việc và các chức năng hoạt động ổn định.

‒ Hoàn thành được tất cả các tính năng đã đề ra theo kế hoạch và mở rộng thêm tính năng.

‒ Hiểu được nghiệp vụ của một trang web quản lý công việc.

‒ Hiểu biết thêm về cách hoạt động của những công nghệ phát triển web và ứng dụng chúng vào đồ án.

‒ Cải thiện thêm được kỹ năng lập trình.

‒ Biết cách giao tiếp, phân chia công việc, phối hợp với nhau trong quá trình làm việc nhóm.

Ưu điểm

‒ Hoàn thành các yêu cầu, đáp ứng đầy đủ các chức năng mà nhóm đã đặt ra từ trước.

‒ Phần server của ứng dụng viết bằng Go nên cho hiệu suất ứng dụng trở nên tối ưu hơn.

‒ Giao diện được thiết kế theo dạng động, cho phép người dùng kéo thả để tùy chỉnh theo mục đích sử dụng một cách linh hoạt, giúp gia tăng trải nghiệm người dùng.

‒ Cho phép tóm tắt, tổng hợp công việc bằng AI, giúp tiết kiệm thời gian và công sức ChatGPT sẽ dựa vào thông tin của các công việc đang có và tóm tắt lại một cách trực quan, từ đó người dùng có thể có được một cái nhìn tổng thể về công việc.

‒ Người dùng có thể tương tác trực tiếp với chatbot trong quá trình sử dụng. Khi người dùng có vấn đề cần giải đáp, họ có thể gửi câu hỏi cho chatbot và chatbot sẽ đưa ra câu trả lời tương ứng.

‒ Cung cấp các biểu đồ thể hiện số liệu trực quan, từ đó người dùng có thể đánh giá chất lượng công việc hiện tại.

‒ Cho phép xem thời gian biểu theo thứ thời gian của mỗi công việc, giúp cho quá trình quản lý công việc trở nên đơn giản hơn, từ đó dễ dàng đưa ra các quyết định, kế hoạch trong tương lai.

‒ Trang web bán hàng sử dụng công nghệ NextJS, do đó nâng cao về mặt tối ưu bộ máy tìm kiếm và trải nghiệm người dùng.

‒ Giao diện trang web đơn giản, dễ sử dụng, tương thích trên nhiều thiết bị,nhiều kích thước màn hình Người dùng có thể truy cập và sử dụng trang web bằng bất kỳ thiết bị nào có kết nối internet.

‒ Trang web có hỗ trợ light/dark mode, tùy vào điều kiện sử dụng hoặc sở thích mà người dùng có thể điều chỉnh linh hoạt, từ đó nâng cao trải nghiệm người dùng trong quá trình sử dụng hay thậm chí là tối ưu hiệu quả công việc.

Nhược điểm

‒ Các Column, Card chưa cho phép thay đổi vị trí bằng cách click chuột và chọn ví trí thay vì kéo thả, người dùng có thể sẽ gặp khó khăn nếu như Board có quá nhiều Columns.

‒ Chưa hỗ trợ tạo đường liên kết để mời thành viên mới.

‒ Chưa hỗ trợ giao diện quản lý công việc theo dạng lịch.

Hướng phát triển

‒ Phát triển thêm chức năng mời thành viên bằng đường liên kết.

‒ Phát triển giao diện quản lý công việc dưới dạng lịch.

‒ Hỗ trợ chức năng thay đổi vị trí Column, Card bằng cách chọn vị trí.

Ngày đăng: 15/05/2024, 09:29

HÌNH ẢNH LIÊN QUAN

Hình 3.9. Kiến trúc hệ thống - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 3.9. Kiến trúc hệ thống (Trang 36)
3.3.1. Sơ đồ Use-case tổng quát - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
3.3.1. Sơ đồ Use-case tổng quát (Trang 40)
3.3.1.2. Sơ đồ Use Case của người dùng đã đăng nhập - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
3.3.1.2. Sơ đồ Use Case của người dùng đã đăng nhập (Trang 41)
Bảng 3.5. Use Case Đăng nhập - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Bảng 3.5. Use Case Đăng nhập (Trang 44)
Bảng 3.11. Use Case Quản lý workspaces - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Bảng 3.11. Use Case Quản lý workspaces (Trang 50)
Bảng 3.21. Use Case Quản lý cột - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Bảng 3.21. Use Case Quản lý cột (Trang 61)
Bảng 3.25. Use Case Quản lý thẻ - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Bảng 3.25. Use Case Quản lý thẻ (Trang 65)
Hình 3.12. Sơ đồ Logic hoàn chỉnh - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 3.12. Sơ đồ Logic hoàn chỉnh (Trang 72)
Hình 4.14. Màn hình Đăng nhập với email và mật khẩu - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.14. Màn hình Đăng nhập với email và mật khẩu (Trang 79)
Hình 4.16. Màn hình Đăng ký - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.16. Màn hình Đăng ký (Trang 80)
Hình 4.17. Màn hình Khôi phục mật khẩu - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.17. Màn hình Khôi phục mật khẩu (Trang 80)
Hình 4.18. Màn hình Thay đổi mật khẩu - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.18. Màn hình Thay đổi mật khẩu (Trang 81)
Hình 4.19. Màn hình Quản lý Workspace - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.19. Màn hình Quản lý Workspace (Trang 81)
Hình 4.20. Màn hình Tạo Workspace - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.20. Màn hình Tạo Workspace (Trang 82)
Hình 4.21. Màn hình Tạo Board - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.21. Màn hình Tạo Board (Trang 82)
Hình 4.6 Màn hình Xem thời gian biểu của Workspace - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.6 Màn hình Xem thời gian biểu của Workspace (Trang 83)
Hình 4.23. Màn hình lọc Board theo label - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.23. Màn hình lọc Board theo label (Trang 84)
Hình 4.24. Màn hình Xem thời gian biểu của Board - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.24. Màn hình Xem thời gian biểu của Board (Trang 85)
Hình 4.25. Màn hình Đánh giá công việc - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.25. Màn hình Đánh giá công việc (Trang 85)
Hình 4.26. Màn hình Thêm thành viên vào Board - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.26. Màn hình Thêm thành viên vào Board (Trang 86)
Hình 4.27. Màn hình Xem danh sách thành viên của Board - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.27. Màn hình Xem danh sách thành viên của Board (Trang 86)
Hình 4.28. Màn hình Kéo thả Column - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.28. Màn hình Kéo thả Column (Trang 87)
Hình 4.29. Màn hình Kéo thả Card - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.29. Màn hình Kéo thả Card (Trang 87)
Hình 4.30. Màn hình Quản lý Card - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.30. Màn hình Quản lý Card (Trang 88)
Hình 4.33. Màn hình Tìm kiếm không có kết quả - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.33. Màn hình Tìm kiếm không có kết quả (Trang 90)
Hình 4.32. Màn hình Tìm kiếm - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.32. Màn hình Tìm kiếm (Trang 90)
Hình 4.38. Màn hình chat với ChatGPT - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.38. Màn hình chat với ChatGPT (Trang 93)
Hình 4.39. Màn hình Tổng hợp công việc - đồ án 2 xây dựng nền tảng hỗ trợ quản lý công việc
Hình 4.39. Màn hình Tổng hợp công việc (Trang 93)

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

TÀI LIỆU LIÊN QUAN

w