Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, nhu cầu tiếp cận kiến thức và tự định hướng lộ trình học tập của cá nhân ngày càng gia tăng. Việc tìm kiếm tài liệu, phân bổ lộ trình học phù hợp với năng lực và mục tiêu cá nhân gặp nhiều khó khăn nếu thiếu sự hỗ trợ từ cộng đồng và các chuyên gia. Đồng thời, các giải pháp học tập truyền thống thường mang tính một chiều, thiếu tính tương tác xã hội và sự linh hoạt trong việc cá nhân hóa chương trình học. Khóa luận tốt nghiệp "Xây dựng hệ thống cộng đồng chia sẻ lộ trình học AI Journey sử dụng công nghệ ReactJS, Flutter và NestJS" được thực hiện bởi sinh viên Nguyễn Văn Ninh và Đinh Văn Toàn, dưới sự hướng dẫn của TS. Mai Anh Thơ và phản biện của ThS. Nguyễn Thủy An tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (tháng 7 năm 2024), nhằm giải quyết bài toán trên.
Mục tiêu tổng quát của đề tài là xây dựng một nền tảng mạng xã hội học tập trực tuyến tích hợp trí tuệ nhân tạo, cho phép người dùng tìm kiếm, tạo lập, tùy biến và chia sẻ lộ trình học tập, đồng thời trao đổi thảo luận thông qua môi trường web và ứng dụng di động.
Nhiệm vụ nghiên cứu được văn bản phân định thành hai nhóm chính:
- Nhiệm vụ lý thuyết: Nghiên cứu các nền tảng công nghệ và thư viện phục vụ phát triển hệ thống gồm ReactJS, Flutter, Dart, NestJS, WebSocket, Prisma ORM, PostgreSQL, MongoDB, AI API (OpenAI API, Claude AI), Swagger, Figma, Firebase Storage và JSON Web Token (JWT).
- Nhiệm vụ thực hành: Thiết kế và xử lý giao diện web cho người dùng bằng React; thiết kế và xử lý giao diện ứng dụng di động bằng Flutter; thiết lập cơ sở dữ liệu kết hợp PostgreSQL và MongoDB; phát triển hệ thống backend bằng framework NestJS; ứng dụng JWT vào xác thực và phân quyền; thiết kế mẫu giao diện UI/UX trên Figma; sử dụng Firebase để quản lý tệp tin và gửi thông báo hoạt động trên thiết bị di động.
Đối tượng nghiên cứu của đề tài tập trung vào nhu cầu tìm kiếm, giải quyết các thắc mắc về lộ trình học tập trong các lĩnh vực cụ thể, các phương thức tương tác xã hội (thảo luận, bình luận, đánh giá, chia sẻ khoảnh khắc) và các giải pháp công nghệ công nghệ phần mềm đa nền tảng. Phạm vi nghiên cứu về mặt không gian bao gồm hai phân hệ chính: phân hệ Quản trị (Admin) và phân hệ Người dùng (Client Web và Di động); phạm vi thời gian thực hiện đồ án diễn ra từ ngày 12/02/2024 đến ngày 20/06/2024.
Cơ sở lý thuyết và phương pháp
Cơ sở lý thuyết của đồ án dựa trên các mô hình kiến trúc phần mềm phân tầng hiện đại, giao tiếp mạng hai chiều và công nghệ trí tuệ nhân tạo tạo sinh:
- Kiến trúc phần mềm: Khung phát triển phía máy chủ dựa trên kiến trúc module hóa của NestJS (học tập mô hình của Angular), quản lý các luồng dữ liệu thông qua Controllers, Providers, Middleware, Guards, Interceptors và Pipes. Phía máy khách áp dụng mô hình phân rã thành phần giao diện (Component-based architecture) của ReactJS và mô hình cây giao diện (Widget tree) của Flutter.
- Mô hình cơ sở dữ liệu: Kết hợp hệ quản trị cơ sở dữ liệu quan hệ đối tượng PostgreSQL (hỗ trợ ràng buộc toàn vẹn, bảo mật SCRAM-SHA-256, lưu trữ cấu trúc) thông qua tầng trừu tượng hóa Prisma ORM, cùng với hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB phục vụ lưu trữ tài liệu JSON linh hoạt.
- Mô hình truyền thông và bảo mật: Giao thức WebSocket dựa trên tầng TCP socket phục vụ trao đổi thông điệp thời gian thực; cơ chế mã hóa mật khẩu và xác thực phân quyền dựa trên JSON Web Token (JWT).
- Mô hình trí tuệ nhân tạo: Các mô hình ngôn ngữ lớn (LLMs) được khảo sát gồm mạng Neural Transformer của ChatGPT, dịch vụ hội thoại Bing ChatGPT và mô hình Claude AI (Anthropic).
Phương pháp nghiên cứu thực tế được triển khai theo quy trình kỹ thuật phần mềm:
- Phương pháp khảo sát và phân tích hiện trạng: Đánh giá ưu nhược điểm của các công cụ AI hội thoại trực tuyến sẵn có (ChatGPT, Bing ChatGPT, Claude AI) để xác định bài toán nghiệp vụ cho hệ sinh thái AI Journey.
- Phương pháp phân tích và mô hình hóa hệ thống: Sử dụng ngôn ngữ mô hình hóa hợp nhất (UML) để xây dựng lược đồ Use Case tổng quát, lược đồ tuần tự (Sequence Diagram) cho từng luồng nghiệp vụ và lược đồ lớp (Class Diagram) cho cơ sở dữ liệu.
- Phương pháp hiện thực hóa phần mềm: Áp dụng phương pháp lập trình đa nền tảng, xây dựng giao diện từ bản mẫu Figma, triển khai dịch vụ REST API bằng NestJS và đóng gói môi trường thử nghiệm cơ sở dữ liệu bằng Docker Compose.
- Phương pháp kiểm thử phần mềm: Áp dụng kỹ thuật kiểm thử chức năng (Functional Testing) theo chiến lược kiểm thử hộp đen nhằm xác minh độ chính xác của các ca kiểm thử trên giao diện và API.
Nguồn dữ liệu của nghiên cứu bao gồm tài liệu kỹ thuật chính thức của các framework/thư viện (ReactJS, NestJS, Flutter, Prisma, PostgreSQL), các endpoint của OpenAI API, Claude AI và dữ liệu thử nghiệm người dùng phát sinh trong quá trình vận hành hệ thống.
Thiết kế và triển khai hệ thống
Hệ thống AI Journey được thiết kế theo mô hình kiến trúc phân tán đa tầng Client - Server:
| Phân hệ / Tầng |
Công nghệ sử dụng |
Vai trò và chức năng chính |
| Giao diện Web |
ReactJS, HTML/CSS, JavaScript |
Cung cấp giao diện người dùng trên trình duyệt, hỗ trợ tra cứu lộ trình, tương tác thảo luận, tạo lộ trình học và quản lý học tập cá nhân. |
| Giao diện Di động |
Flutter, Ngôn ngữ Dart, Skia Engine |
Cung cấp ứng dụng di động cho hệ điều hành iOS/Android; hỗ trợ các tính năng mạng xã hội: bài đăng cá nhân, chia sẻ khoảnh khắc 24h, nhắn tin bạn bè và tương tác chatbot AI. |
| Tầng Backend |
NestJS, TypeScript, Node.js |
Xử lý logic nghiệp vụ, điều hướng route, kiểm soát xác thực, quản lý phân quyền và cung cấp các REST API. |
| Giao tiếp Realtime |
WebSocket (TCP Socket) |
Hỗ trợ kênh truyền dữ liệu hai chiều thời gian thực với độ trễ thấp, phục vụ tác vụ nhắn tin và trao đổi hội thoại. |
| Cơ sở dữ liệu |
PostgreSQL 12, MongoDB |
PostgreSQL lưu trữ các dữ liệu có cấu trúc quan hệ chặt chẽ; MongoDB lưu trữ dữ liệu dạng document phi quan hệ. |
| Tầng ORM |
Prisma (Schema, Client, Migrate) |
Cung cấp tầng trừu tượng kết nối cơ sở dữ liệu, quản lý migration và tối ưu hóa câu truy vấn dữ liệu từ NestJS. |
| Dịch vụ Tích hợp |
OpenAI API, Claude AI, Firebase |
OpenAI API/Claude AI cung cấp khả năng tự động tạo lộ trình học và chatbot tư vấn; Firebase xử lý lưu trữ tệp và gửi thông báo di động. |
Hệ thống backend sử dụng Docker Compose để khởi chạy dịch vụ PostgreSQL trên cổng 5432, kết hợp pgAdmin 4 và MongoDB Compass để phục vụ quản trị cơ sở dữ liệu. Về mặt bảo mật, mật khẩu người dùng được băm trước khi lưu trữ, các phiên truy cập được cấp phát mã định danh qua JWT Token.
Chiến lược kiểm thử được thiết lập theo quy trình thiết kế kịch bản kiểm thử cho từng chức năng chính của khách, thành viên và quản trị viên:
npm install -g @nestjs/cli
npm run start:dev
docker-compose up -d
npx prisma init
Kết quả kiểm thử chức năng được đối chiếu trực tiếp qua bảng ma trận kiểm thử, đảm bảo các luồng đăng ký, đăng nhập, đặt câu hỏi, tạo lộ trình AI, chat thời gian thực và quản trị hệ thống đều phản hồi đúng theo đặc tả nghiệp vụ.
Nội dung chính theo từng chương
Phần mở đầu
Trình bày tính cấp thiết của việc xây dựng mạng xã hội chia sẻ lộ trình học tập trong thời đại số hóa giáo dục. Xác định rõ đối tượng nghiên cứu là các phương thức tìm kiếm, thảo luận câu hỏi về lộ trình học và các công nghệ xây dựng phần mềm (ReactJS, Flutter, NestJS). Giới hạn phạm vi nghiên cứu gồm hai phân hệ Web và Di động, bao gồm đầy đủ chức năng quản trị và chức năng thành viên trong khung thời gian từ tháng 02/2024 đến tháng 06/2024. Nêu bật ý nghĩa khoa học và thực tiễn trong việc tạo dựng môi trường tự học linh hoạt, kết nối cộng đồng người học và giảng viên.
Chương 1. Khảo sát hiện trạng và xác định yêu cầu
Khảo sát chi tiết hiện trạng các công cụ trí tuệ nhân tạo phục vụ học tập phổ biến gồm: ChatGPT (phân tích ưu điểm về mạng Neural Transformer, kiến thức sâu rộng; chỉ ra nhược điểm về độ chính xác không tuyệt đối, giới hạn dữ liệu đến năm 2021), Bing ChatGPT (ưu điểm cập nhật thông tin mới nhất, miễn phí, lọc nội dung độc hại; nhược điểm về tính chuẩn xác và ngôn ngữ) và Claude AI của Anthropic (ưu điểm xử lý đa nhiệm, an toàn, hỗ trợ đọc tài liệu).
Trên cơ sở khảo sát, chương 1 xác định danh mục 23 yêu cầu chức năng nghiệp vụ của hệ thống:
| STT |
Tên chức năng nghiệp vụ |
Đối tượng áp dụng (Users) |
| 1 |
Đăng ký |
Người dùng |
| 2 |
Đăng nhập |
Người dùng, Admin |
| 3 |
Lấy lại mật khẩu |
Người dùng |
| 4 |
Quản lý thông tin tài khoản cá nhân |
Người dùng, Admin |
| 5 |
Đổi mật khẩu tài khoản |
Người dùng, Admin |
| 6 |
Tìm kiếm và xem thông tin các lộ trình khóa học |
Người dùng, Admin |
| 7 |
Tạo lộ trình khóa học tham khảo |
Người dùng, Admin |
| 8 |
Quản lý lộ trình khóa học (Lịch sử tạo, sửa, xóa) |
Người dùng, Admin |
| 9 |
Quản lý bài đăng thảo luận (Thêm, xóa, sửa) |
Người dùng |
| 10 |
Quản lý bình luận thảo luận (Thêm, xóa, sửa) |
Người dùng, Admin |
| 11 |
Báo cáo bài đăng thảo luận vi phạm |
Người dùng |
| 12 |
Báo cáo bình luận thảo luận vi phạm |
Người dùng |
| 13 |
Xử lý báo cáo vi phạm |
Admin |
| 14 |
Tra cứu lộ trình khóa học |
Người dùng, Admin |
| 15 |
Đánh giá lộ trình khóa học |
Người dùng |
| 16 |
Quản lý đánh giá lộ trình |
Người dùng, Admin |
| 17 |
Quản lý bài đăng cá nhân (Mobile) |
Người dùng |
| 18 |
Quản lý bài đăng khoảnh khắc 24h cá nhân (Mobile) |
Người dùng |
| 19 |
Quản lý tin nhắn bạn bè (Mobile) |
Người dùng |
| 20 |
Quản lý tin nhắn với AI Journey (Mobile) |
Người dùng |
| 21 |
Quản lý tương tác với AI |
Admin |
| 22 |
Quản lý lộ trình khóa học do AI tạo ra |
Người dùng, Admin |
| 23 |
Báo cáo bài đăng cá nhân vi phạm |
Người dùng, Admin |
Chương cũng xác định các yêu cầu phi chức năng gồm: mật khẩu phải được băm an toàn, hệ thống hỗ trợ phân quyền chặt chẽ, giao diện trực quan, tương thích hiển thị (responsive) trên nhiều thiết bị và cơ sở dữ liệu có khả năng lưu trữ lớn.
Chương 2. Công nghệ áp dụng trong dự án
Đi sâu giới thiệu lý thuyết và vai trò kỹ thuật của từng công nghệ trong dự án. Đối với ReactJS, văn bản làm rõ khái niệm Function Component, Class Component và đối chiếu sự khác biệt giữa hai cơ chế quản lý dữ liệu Props và State:
| Tiêu chí so sánh |
Props |
State |
| Nhận giá trị ban đầu từ component cha |
Có |
Có |
| Bị thay đổi bởi component cha |
Có |
Không |
| Thiết lập giá trị mặc định bên trong component |
Có |
Có |
| Thay đổi, cập nhật bên trong component |
Không |
Có |
| Thiết lập giá trị ban đầu cho component con |
Có |
Có |
| Thay đổi trực tiếp trong component con |
Có |
Không |
Về phía NestJS, chương phân tích mô hình hoạt động của Controllers, Providers, Modules, Middleware, Pipes, Guards, Interceptors và Unit Testing. Đối với cơ chế WebSocket, phân tích cấu trúc kết nối 2 chiều và hai thuộc tính trọng tâm: Buffered Amount và ReadyState (với 4 trạng thái định danh: CONNECTING = 0, OPEN = 1, CLOSING = 2, CLOSED = 3). Đối với cơ sở dữ liệu, phân tích cơ chế Prisma Schema, Prisma Client, Prisma Migrate; các kiểu dữ liệu và chuẩn bảo mật SCRAM-SHA-256 của PostgreSQL; mô hình hướng tài liệu JSON của MongoDB. Ngoài ra, chương hướng dẫn cấu hình OpenAI API, Claude AI, bộ SDK Flutter và công cụ kết xuất Skia.
Chương 3. Mô hình hóa yêu cầu
Xây dựng lược đồ Use Case tổng thể cho hệ thống và phân rã thành hai nhóm tác nhân: Khách/Thành viên và Quản trị viên (Admin). Mô hình hóa chi tiết 39 ca sử dụng nghiệp vụ thông qua các bảng đặc tả từ Bảng 3 đến Bảng 41, xác định rõ điều kiện tiên quyết, luồng sự kiện chính, luồng sự kiện phụ và điều kiện sau cho các hành động: đăng ký, đăng nhập, xem/tạo/sửa/xóa lộ trình học, đặt câu hỏi thảo luận, gửi phản hồi, theo dõi bài viết, đánh giá sao, báo cáo vi phạm, quản lý danh mục và kết xuất báo cáo thống kê.
Chương 4. Thiết kế phần mềm
Hiện thực hóa các yêu cầu chức năng thành các bản vẽ thiết kế kỹ thuật chi tiết:
- Lược đồ tuần tự (Sequence Diagram): Xây dựng biểu đồ tuần tự cho toàn bộ các ca nghiệp vụ chính từ Hình 9 đến Hình 40, làm rõ sự tương tác giữa Actor, Giao diện người dùng (Boundary), Bộ điều khiển (Controller), Dịch vụ nghiệp vụ (Service) và Cơ sở dữ liệu (Database).
- Thiết kế cơ sở dữ liệu: Xây dựng Class Diagram (Hình 41) và định nghĩa chi tiết cấu trúc 16 bảng dữ liệu qua các bảng từ Bảng 42 đến Bảng 57, bao gồm:
User, UserInfo, Token, Follow, Question, QuestionComment, QuestionReply, Privilege, Note, Category, Goal, GoalBranch, Roadmap, RoadmapDetails và Report.
- Thiết kế giao diện: Mô tả hệ thống màn hình từ bản thiết kế Figma đến giao diện thực tế (từ Hình 42 đến Hình 92) bao gồm các trang web chính (Trang chủ, Đăng ký, Đăng nhập, Quên mật khẩu, Trang cá nhân, Note, Thư viện, Chi tiết lộ trình, Thảo luận, Tạo lộ trình bằng AI, Bảng xếp hạng) và giao diện ứng dụng di động Flutter (Splash screen, Đăng nhập/Đăng ký, Quên mật khẩu, Trang chủ, Cài đặt, Thông báo, Tìm kiếm, Chia sẻ khoảnh khắc/Story, Đăng bài cá nhân, Nhắn tin bạn bè, Chatbot tương tác AI) cùng bảng điều khiển của Admin.
Chương 5. Cài đặt và kiểm thử
Đặc tả danh mục các công cụ cài đặt, quy trình biên dịch và khởi chạy ứng dụng web ReactJS, mobile app Flutter và máy chủ backend NestJS. Xây dựng kế hoạch kiểm thử theo phương pháp kiểm thử chức năng (Bảng 72). Trình bày kết quả kiểm thử các chức năng chính (Bảng 73), ghi nhận toàn bộ các kịch bản kiểm thử về xác thực người dùng, tương tác lộ trình học, đặt câu hỏi cộng đồng, gọi API AI và quản lý vi phạm đều đạt yêu cầu thiết kế ban đầu.
Phần kết luận
Đánh giá tổng kết các kết quả đạt được về mặt lý thuyết và ứng dụng thực tiễn của đề tài. Thừa nhận các mặt hạn chế còn tồn đọng trong quá trình thực hiện và đề xuất các định hướng nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Về kết quả kỹ thuật, đồ án đã hoàn thành đầy đủ các sản phẩm phần mềm theo đúng đề cương phê duyệt:
- Xây dựng thành công hệ thống đa nền tảng gồm ứng dụng Web phát triển bằng ReactJS, ứng dụng di động phát triển bằng Flutter và hệ thống dịch vụ Backend phát triển bằng NestJS.
- Thiết kế và chuẩn hóa cơ sở dữ liệu gồm 16 bảng dữ liệu quan hệ trên PostgreSQL cùng mô hình lưu trữ NoSQL trên MongoDB, được điều phối đồng bộ thông qua Prisma ORM.
- Tích hợp thành công các API trí tuệ nhân tạo (OpenAI API, Claude AI) vào chức năng tự động gợi ý lộ trình học và hỗ trợ trả lời thắc mắc của người học qua giao diện chatbot.
- Thiết lập kênh tương tác dữ liệu hai chiều thời gian thực thông qua WebSocket, phục vụ các tính năng thông báo và trao đổi tin nhắn trực tiếp giữa các thành viên.
- Hoàn thành kiểm thử chức năng cho 23 yêu cầu nghiệp vụ cốt lõi, xác nhận hệ thống vận hành ổn định trên cả nền tảng web và thiết bị di động.
Đóng góp của đồ án thể hiện ở việc xây dựng một mô hình hệ thống kết hợp giữa mạng xã hội học tập và công nghệ trí tuệ nhân tạo, giúp người học không chỉ tiếp cận các lộ trình kiến thức có cấu trúc mà còn có môi trường tương tác, phản biện và cá nhân hóa quá trình tự học. Đồ án cũng cung cấp một giải pháp mẫu về việc kết hợp các công nghệ mới (ReactJS, Flutter, NestJS, Prisma, PostgreSQL, MongoDB, WebSocket) trong một kiến trúc phần mềm hoàn chỉnh.
Hạn chế và hướng nghiên cứu tiếp
Theo văn bản báo cáo, đồ án tồn tại một số hạn chế sau:
- Thời gian nghiên cứu và thực hiện có hạn (kéo dài trong 4 tháng từ tháng 02/2024 đến tháng 06/2024) cùng năng lực thực tế của nhóm sinh viên nên hệ thống khó tránh khỏi những thiếu sót nhất định trong việc tối ưu hóa hiệu năng sâu.
- Các kết quả do trí tuệ nhân tạo (ChatGPT, Claude AI) tạo ra mang tính chất tham khảo, độ chính xác không mang tính tuyệt đối và dữ liệu phụ thuộc vào nhà cung cấp dịch vụ bên ngoài.
- Hệ thống chưa trình bày chi tiết các số liệu kiểm thử tải quy mô lớn (Stress Testing) hay đánh giá định lượng về hiệu năng chịu tải khi có lượng truy cập đồng thời lớn trên môi trường thực tế.
Hướng phát triển tiếp theo được tác giả đề xuất:
- Tiếp tục ghi nhận các ý kiến đóng góp chuyên môn từ hội đồng giảng viên để khắc phục các lỗi phát sinh và nâng cấp sản phẩm.
- Tối ưu hóa thuật toán tạo và đề xuất lộ trình học tập của AI, nâng cao độ tin cậy và tính tương thích với năng lực thực tế của từng người dùng.
- Hoàn thiện, bổ sung các tiện ích tương tác nâng cao trên cả hai nền tảng web và di động nhằm mở rộng quy mô cộng đồng người học.
Giá trị tham khảo
Báo cáo khóa luận tốt nghiệp này là tài liệu tham khảo hữu ích cho:
- Sinh viên chuyên ngành Công nghệ thông tin, Công nghệ phần mềm đang thực hiện đồ án tốt nghiệp hoặc các dự án phát triển ứng dụng web và di động full-stack.
- Các nhà phát triển phần mềm cần tài liệu đối sánh và hướng dẫn tích hợp bộ công nghệ hiện đại: NestJS làm Backend API, ReactJS cho Web Client, Flutter cho Mobile Client và Prisma ORM quản lý PostgreSQL.
- Người nghiên cứu có nhu cầu tìm hiểu phương thức tích hợp các mô hình ngôn ngữ lớn (OpenAI API, Claude AI) vào các nền tảng giáo dục trực tuyến hoặc mạng xã hội học tập.
Các phần có giá trị tham khảo cao nhất trong tài liệu gồm: Chương 2 với hệ thống lý thuyết và phương thức thiết lập công nghệ chi tiết; Chương 3 và Chương 4 với hệ thống tài liệu phân tích thiết kế chuẩn mực (từ bảng đặc tả 39 use case, các lược đồ tuần tự chi tiết đến lược đồ cấu trúc 16 bảng dữ liệu).
Câu hỏi thường gặp
1. Hệ thống AI Journey được phát triển dựa trên những nền tảng và ngôn ngữ lập trình nào?
Hệ thống sử dụng ngôn ngữ JavaScript/TypeScript và Dart. Các nền tảng chính bao gồm: thư viện ReactJS cho giao diện web, framework Flutter (sử dụng ngôn ngữ Dart và công cụ kết xuất Skia) cho ứng dụng di động, framework NestJS trên nền Node.js cho hệ thống backend, kết hợp cùng Prisma ORM.
2. Cơ sở dữ liệu của hệ thống được tổ chức như thế nào?
Hệ thống kết hợp hai hệ quản trị cơ sở dữ liệu: PostgreSQL 12 (chạy qua Docker trên cổng 5432, quản lý qua pgAdmin 4) dùng để lưu trữ dữ liệu có cấu trúc quan hệ gồm 16 bảng dữ liệu (User, UserInfo, Token, Roadmap, Question...), và MongoDB (quản lý qua MongoDB Compass) dùng để lưu trữ dữ liệu phi quan hệ. Tầng kết nối giữa backend NestJS và PostgreSQL được trừu tượng hóa bằng Prisma ORM.
3. Trí tuệ nhân tạo (AI) đóng vai trò gì trong đồ án?
Hệ thống tích hợp OpenAI API (mô hình GPT) và Claude AI của Anthropic nhằm thực hiện hai chức năng chính: tự động khởi tạo lộ trình học tập theo yêu cầu của người dùng trên web/mobile và vận hành chatbot AI tương tác trực tiếp, hỗ trợ trả lời câu hỏi, gợi ý tài liệu học tập cho sinh viên.
4. Hệ thống phân chia quyền hạn và vai trò người dùng như thế nào?
Hệ thống phân định thành 3 nhóm đối tượng: Khách (người dùng chưa đăng nhập, chỉ được xem các nội dung công khai cơ bản và cần đăng ký để sử dụng đầy đủ dịch vụ); Thành viên (người dùng đã xác thực bằng JWT, có toàn quyền tạo, sửa, xóa lộ trình học cá nhân, thảo luận, đăng bài, nhắn tin và chat với AI); Quản trị viên (Admin, có quyền quản lý tài khoản, kiểm duyệt chủ đề, kiểm soát lộ trình, xử lý báo cáo vi phạm câu hỏi/bình luận và theo dõi số liệu thống kê hệ thống).
5. Giao thức WebSocket được ứng dụng cho mục đích gì và có những trạng thái kết nối nào?
Giao thức WebSocket được sử dụng để thiết lập kênh truyền thông hai chiều thời gian thực giữa máy khách và máy chủ, giảm kích thước header HTTP và giảm độ trễ cho tính năng nhắn tin. Trong dự án, WebSocket biểu diễn trạng thái qua thuộc tính ReadyState với 4 giá trị: CONNECTING (0 - chưa lập kết nối), OPEN (1 - đã kết nối và có thể giao tiếp), CLOSING (2 - chuẩn bị đóng) và CLOSED (3 - đã đóng kết nối).
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống cộng đồng chia sẻ lộ trình học AI Journey sử dụng công nghệ ReactJS, Flutter và NestJS" của sinh viên Nguyễn Văn Ninh và Đinh Văn Toàn đã hoàn thành đầy đủ các mục tiêu nghiên cứu và yêu cầu kỹ thuật đề ra. Đề tài đã hiện thực hóa thành công một hệ sinh thái học tập đa nền tảng hoàn chỉnh, kết hợp hài hòa giữa mạng xã hội trao đổi kiến thức và các dịch vụ hỗ trợ của trí tuệ nhân tạo. Toàn bộ quy trình từ khảo sát hiện trạng, phân tích yêu cầu, thiết kế kiến trúc phần mềm, xây dựng cơ sở dữ liệu đến cài đặt và kiểm thử chức năng đều được nhóm tác giả thực hiện có hệ thống, mang lại giá trị thực tiễn và tính ứng dụng rõ rệt cho chuyên ngành Công nghệ phần mềm.