Bối cảnh và vấn đề nghiên cứu

Với sự phát triển nhanh chóng của công nghệ và nhu cầu học tập ngày càng tăng, thị trường gia sư trực tuyến tại Việt Nam đang trải qua giai đoạn tăng trưởng đáng kể. Tác giả chỉ ra rằng dịch COVID-19 là yếu tố thúc đẩy mạnh mẽ quá trình chuyển đổi từ hình thức học truyền thống sang học trực tuyến, ảnh hưởng đến mọi lứa tuổi và bậc học. Thị trường ứng dụng tìm kiếm gia sư tại Việt Nam đã có sự hiện diện của một số nền tảng như Daykemtainha và Gia sư Đất Việt (với hơn 15.000 giáo viên đăng ký), nhưng chưa có nền tảng nào tích hợp đồng thời chức năng quản lý thông tin, kết nối học viên–gia sư và hỗ trợ học tập thông qua trí tuệ nhân tạo trong một ứng dụng thống nhất. Từ bối cảnh đó, tác giả đề xuất xây dựng ứng dụng EduMentor nhằm lấp đầy khoảng trống này.

Mục tiêu nghiên cứu bao gồm bốn nhóm chính:

  1. Tạo ra một hệ thống quản lý gia sư hiệu quả với giao diện dễ sử dụng, tích hợp quản lý thông tin cá nhân, lớp học và thông báo yêu cầu mới từ học sinh.
  2. Tối ưu hóa quá trình tìm kiếm gia sư cho học sinh dựa trên các tiêu chí như môn học, địa điểm và trình độ, kết hợp với hệ thống đánh giá từ người dùng trước.
  3. Cung cấp trợ giúp thông qua trợ giảng AI chatbot tích hợp sẵn trong ứng dụng, hỗ trợ trả lời câu hỏi, tìm kiếm thông tin và tương tác ngôn ngữ tự nhiên.
  4. Đảm bảo chất lượng dịch vụ thông qua hệ thống đánh giá và phản hồi từ học sinh sau quá trình học với gia sư.

Đối tượng nghiên cứu gồm hai nhóm người dùng chính: người học (học viên có nhu cầu tìm gia sư) và người dạy (gia sư cung cấp dịch vụ giảng dạy). Phạm vi nghiên cứu tập trung vào việc thiết kế và triển khai ứng dụng di động đa nền tảng (Android và iOS), trang web quản trị (admin), hệ thống backend, cơ sở dữ liệu, và tích hợp API ChatGPT của OpenAI. Đề tài không giới hạn theo địa lý cụ thể nhưng hướng đến thị trường Việt Nam; thời gian thực hiện và bảo vệ là tháng 1/2024.


Cơ sở lý thuyết và công nghệ sử dụng

Khung công nghệ và lý thuyết nền tảng

Tác giả sử dụng kết hợp nhiều công nghệ hiện đại trong hệ sinh thái JavaScript/TypeScript:

  • JavaScript và TypeScript: JavaScript là ngôn ngữ lập trình cốt lõi cho toàn bộ hệ thống; TypeScript được sử dụng để bổ sung kiểu tĩnh, phát hiện lỗi sớm trong quá trình phát triển.
  • ChatGPT (OpenAI): Chatbot AI tích hợp dựa trên mô hình ngôn ngữ lớn của OpenAI, hoạt động theo cơ chế học từ tập dữ liệu văn bản lớn, sử dụng thuật toán PPO (Proximal Policy Optimization) trong quá trình huấn luyện tăng cường. Tác giả phân tích rõ cả tính năng (tạo phản hồi tự nhiên, xử lý đa dạng công việc) lẫn hạn chế (phụ thuộc dữ liệu huấn luyện, có thể tạo thông tin sai lệch).
  • MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu, lưu trữ dữ liệu dạng BSON/JSON, hỗ trợ đánh chỉ mục linh hoạt, replication và sharding. Trường _id kiểu ObjectId được tự động đánh index để tối ưu truy vấn.
  • ReactJS: Thư viện JavaScript mã nguồn mở do Facebook phát triển, sử dụng JSX và Virtual DOM để tối ưu việc render giao diện trang web admin. ReactJS hiện đứng đầu về lượt sử dụng trong các framework JavaScript front-end.
  • React Native: Framework đa nền tảng (Android/iOS) do Facebook phát triển, cho phép tái sử dụng 80–90% mã nguồn giữa hai hệ điều hành. Hệ thống hoạt động thông qua ba thành phần: Native Code/Modules, JavaScript Virtual Machine (JavaScriptCore) và React Native Bridge (C++/Java).
  • ExpressJS: Framework backend RESTful API cho Node.js, cung cấp hệ thống Routing, Middleware, Error Handling và tích hợp dễ dàng với MongoDB qua Mongoose.

Phương pháp thực hiện

Tác giả áp dụng phương pháp thiết kế và xây dựng hệ thống phần mềm, bao gồm: khảo sát hiện trạng thị trường, thu thập và phân tích yêu cầu, thiết kế use case, thiết kế dữ liệu, phát triển ứng dụng và kiểm thử chức năng.

Nguồn dữ liệu

Dữ liệu người dùng (thông tin môn học, giảng viên, lịch học) được thu thập trực tiếp qua ứng dụng. Hình ảnh và file được lưu trên Firebase; cơ sở dữ liệu đám mây sử dụng MongoDB Atlas; server được hosting trên Render với tên miền https://tutor-api.com; quản lý mã nguồn qua GitHub.


Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương này mô tả bài toán đặt ra: sự thiếu hụt của một nền tảng thống nhất cho phép học viên tìm kiếm gia sư, quản lý lịch học và nhận hỗ trợ từ AI trong cùng một ứng dụng. Tác giả xác định rõ ba nhóm actor (học viên, gia sư, quản trị viên), đồng thời trình bày mục tiêu, đối tượng và phạm vi nghiên cứu. Môi trường phát triển được xác định là JavaScript/TypeScript với các framework React, React Native, ExpressJS; Firebase để lưu trữ tệp; MongoDB Atlas làm cơ sở dữ liệu đám mây.

Chương 2: Cơ sở lý thuyết và công nghệ sử dụng

Chương trình bày nền tảng lý thuyết và lý do lựa chọn từng công nghệ. Tác giả giải thích cơ chế hoạt động của JavaScript Engine qua các bước Parser → AST (Abstract Syntax Tree) → chuyển đổi mã máy → thực thi. Cơ chế của ChatGPT được trình bày theo bốn bước: thu thập dữ liệu minh chứng, huấn luyện reward model, tối ưu hóa chính sách bằng PPO, và sinh phản hồi. Phần so sánh Flutter và React Native được trình bày dưới dạng bảng đối chiếu theo các tiêu chí: ngôn ngữ lập trình, hiệu năng, IDE hỗ trợ và tài liệu kỹ thuật, với kết luận React Native phù hợp hơn với đội ngũ quen JavaScript.

Tiêu chí Flutter React Native
Ngôn ngữ Dart (tương đối mới, ít người thành thạo) JavaScript/TypeScript (phổ biến, dễ chuyển đổi)
Hiệu năng Tốt hơn nhờ C++ và Skia Chậm hơn do JavaScript Bridge
IDE hỗ trợ VS Code, IntelliJ, Android Studio Hầu hết mọi IDE
Tái sử dụng code Có Có (80–90%)

Chương 3: Phân tích thiết kế hệ thống

Chương bắt đầu bằng khảo sát hiện trạng thị trường gia sư trực tuyến tại Việt Nam, phân tích hai ứng dụng cạnh tranh (Daykemtainha và Gia sư Đất Việt). Phần phân tích thiết kế xác định 3 actor và 22 use case cho người dùng (học viên/gia sư) cùng 7 use case cho quản trị viên. Các use case được đặc tả chi tiết qua 65 bảng mô tả luồng hoạt động chính và luồng ngoại lệ, kèm sơ đồ activity cho từng use case.

Thiết kế dữ liệu sử dụng MongoDB với các collection chính: thông tin người dùng, trợ giảng chat-bot, môn học, yêu cầu dạy học, phòng chat, chi tiết chat, chi tiết chat bot và đánh giá. Sơ đồ luồng dữ liệu (Data Flow Diagram) và sơ đồ ERD (MÔP) được xây dựng để mô tả quan hệ giữa các thực thể. Hệ thống triển khai sử dụng kiến trúc client–server với backend trên Render, cơ sở dữ liệu trên MongoDB Atlas và lưu trữ tệp trên Firebase.

Chương 4: Phát triển ứng dụng

Chương mô tả kết quả triển khai thực tế của hệ thống EduMentor, chia thành ba phần:

Ứng dụng di động EduMentor (React Native):

  • Dành cho học viên: trang chủ, quản lý yêu cầu dạy học, tìm kiếm gia sư, trang chat với Chatbot, trang tìm kiếm, chỉnh sửa hồ sơ, đổi mật khẩu, xem chi tiết yêu cầu dạy học, tạo yêu cầu dạy học, trang cá nhân.
  • Dành cho giảng viên (gia sư): xem chi tiết yêu cầu dạy học, trang cá nhân, chỉnh sửa thông tin bằng cấp.

Trang web quản lý dành cho admin (ReactJS):

  • Đăng nhập admin, trang chủ tổng quan, xem danh sách người dùng, xem chi tiết người dùng, xem danh sách yêu cầu trở thành giảng viên, phê duyệt yêu cầu, xem và quản lý danh sách lớp học/yêu cầu dạy học.

Tác giả minh họa tất cả màn hình giao diện bằng ảnh chụp thực tế (hình 4.3 đến 4.20 và phụ lục B) kèm bảng giải thích chức năng từng thành phần UI (bảng 39–65).

Chương 5: Kết luận và hướng phát triển

Chương tổng kết kết quả đạt được, đánh giá mức độ hoàn thành so với mục tiêu đề ra, đồng thời nêu các hạn chế còn tồn tại và định hướng phát triển trong tương lai.


Thiết kế và triển khai

Kiến trúc hệ thống

EduMentor được xây dựng theo kiến trúc client–server phân tầng rõ ràng:

  • Frontend di động: React Native (TypeScript) — hỗ trợ Android và iOS, tái sử dụng 80–90% mã nguồn, giao tiếp với backend qua RESTful API.
  • Frontend web admin: ReactJS (JavaScript) — SPA (Single Page Application), sử dụng Virtual DOM để tối ưu render.
  • Backend: ExpressJS trên Node.js — cung cấp RESTful API, xử lý middleware (xác thực, logging, xử lý lỗi), tích hợp OpenAI API cho chatbot.
  • Cơ sở dữ liệu: MongoDB Atlas (NoSQL, document-based) — lưu trữ linh hoạt, hỗ trợ đánh chỉ mục và replication.
  • Lưu trữ tệp: Firebase — quản lý hình ảnh, file tài liệu.
  • Hosting server: Render (https://tutor-api.com).
  • Quản lý mã nguồn: GitHub.

Công nghệ chính

Thành phần Công nghệ
Ứng dụng di động React Native, TypeScript
Trang admin ReactJS, JavaScript
Backend API ExpressJS, Node.js, TypeScript
Cơ sở dữ liệu MongoDB Atlas (NoSQL)
AI Chatbot OpenAI API (ChatGPT)
Lưu trữ tệp Firebase
Server hosting Render
Quản lý mã nguồn GitHub

Tích hợp AI Chatbot

Hệ thống tích hợp API của OpenAI để xây dựng tính năng trợ giảng Chatbot. Người dùng gửi tin nhắn qua giao diện chat trong ứng dụng; backend chuyển tiếp yêu cầu đến OpenAI API và trả về phản hồi tự động. Chatbot có khả năng trả lời câu hỏi học tập, cung cấp tài liệu và hỗ trợ tương tác ngôn ngữ tự nhiên. Use case "Nhắn tin với trợ giảng Chatbot" được đặc tả riêng (Bảng 21, Sơ đồ 19) với luồng hoạt động: người dùng nhập câu hỏi → hệ thống gửi đến ChatBot API → hiển thị phản hồi tự động.

Phạm vi kiểm thử

Hệ thống được kiểm thử chức năng thông qua việc tạo dữ liệu nền (seeding dữ liệu mới, đặt lịch học dữ liệu thử — hình 4.19, 4.20) và kiểm tra toàn bộ các luồng use case đã đặc tả. Kết quả được trình bày trong phần "Kết quả đạt được" của Chương 4.


Kết quả và đóng góp

Kết quả chính

Tác giả hoàn thành xây dựng hệ thống EduMentor bao gồm ba thành phần triển khai thực tế:

  • Ứng dụng di động React Native hỗ trợ đồng thời Android và iOS với đầy đủ 22 use case cho học viên và gia sư.
  • Trang web quản trị ReactJS với 7 use case cho admin bao gồm quản lý người dùng, phê duyệt yêu cầu trở thành gia sư, và quản lý lớp học/yêu cầu dạy học.
  • Backend RESTful API trên ExpressJS tích hợp OpenAI API, MongoDB Atlas, Firebase và được hosting trên Render.

Hệ thống triển khai thực tế tại địa chỉ https://tutor-api.com và được kiểm thử với dữ liệu mô phỏng.

Giải pháp và tính năng đề xuất

  • Kết nối học viên–gia sư: tìm kiếm gia sư theo môn học, trình độ; xem chi tiết hồ sơ gia sư; đánh giá gia sư sau khi lớp học kết thúc.
  • Quản lý lớp học: học viên tạo yêu cầu dạy học; gia sư nhận lớp; học viên tham gia lớp.
  • Trợ giảng AI: tích hợp ChatGPT qua OpenAI API trực tiếp vào giao diện ứng dụng di động.
  • Đa nền tảng: một codebase React Native phục vụ cả Android và iOS.
  • Nhắn tin nội bộ: hệ thống chat giữa các người dùng trong ứng dụng.

Đóng góp so với các nền tảng hiện có

Tác giả định vị EduMentor khác biệt so với Daykemtainha và Gia sư Đất Việt ở điểm tích hợp trợ giảng AI Chatbot trực tiếp vào ứng dụng di động — tính năng chưa được triển khai trên các nền tảng gia sư hiện có tại Việt Nam được khảo sát trong đề tài.


Hạn chế và hướng nghiên cứu tiếp

Tác giả thừa nhận kiến thức còn hạn chế trong quá trình thực hiện và khả năng còn tồn tại các thiếu sót cần cải thiện. Dựa trên phạm vi đề tài, một số hướng phát triển tiếp theo có thể nhận thấy:

  • Tích hợp thêm các tính năng thanh toán trực tuyến để hoàn thiện vòng đời giao dịch học viên–gia sư.
  • Nâng cấp mô hình AI Chatbot bằng cách fine-tuning theo nội dung giáo dục Việt Nam thay vì chỉ dùng API mặc định của OpenAI.
  • Bổ sung cơ chế xác minh danh tính và bằng cấp gia sư tự động thay vì phụ thuộc vào quy trình phê duyệt thủ công của admin.
  • Tối ưu hiệu năng ứng dụng React Native trên các thiết bị cấu hình thấp, đặc biệt ở phần xử lý hình ảnh và giao tiếp qua React Native Bridge.
  • Mở rộng hệ thống đánh giá chất lượng gia sư với các tiêu chí chi tiết hơn và cơ chế phòng chống đánh giá gian lận.

Giá trị tham khảo

Đề tài phù hợp để tham khảo cho các nhóm đối tượng sau:

  • Sinh viên ngành Công nghệ Thông tin, Hệ thống Thông tin đang thực hiện đồ án tốt nghiệp về phát triển ứng dụng di động đa nền tảng — đặc biệt phần đặc tả use case chi tiết (65 bảng, 34 sơ đồ) là tài liệu tham khảo kỹ thuật có giá trị.
  • Người làm đề tài tương tự về ứng dụng kết nối dịch vụ (on-demand service platform) có thể tham khảo cách tổ chức hệ thống ba actor (học viên, gia sư, admin), cách phân tách giao diện di động và trang admin, và cách tích hợp OpenAI API vào ứng dụng React Native.
  • Người mới học React Native và ExpressJS có thể tham khảo Chương 2 về cơ sở lý thuyết và so sánh Flutter vs React Native, và Chương 3 về cách thiết kế use case cho ứng dụng thực tế.
  • Nhà nghiên cứu hoặc sinh viên quan tâm đến ứng dụng AI trong giáo dục có thể tham khảo phần phân tích ChatGPT (tính năng, hạn chế, cơ chế PPO) và cách tích hợp chatbot vào luồng sử dụng thực tế.

Phần đáng tham khảo nhất là Chương 3 (phân tích thiết kế hệ thống với toàn bộ bảng đặc tả use case và sơ đồ activity) và Chương 4 (giao diện ứng dụng thực tế kèm bảng giải thích UI).


Câu hỏi thường gặp

1. Chatbot trong EduMentor hoạt động như thế nào và dùng công nghệ gì? EduMentor tích hợp API của OpenAI (ChatGPT) vào backend ExpressJS. Khi học viên nhắn tin qua giao diện chat trong ứng dụng di động, yêu cầu được gửi đến server và chuyển tiếp đến OpenAI API để xử lý, sau đó phản hồi tự động được trả về người dùng. Luồng hoạt động này được đặc tả tại Bảng 21 và Sơ đồ 19 trong khóa luận.

2. Ứng dụng di động hỗ trợ những nền tảng nào và tại sao tác giả chọn React Native thay vì Flutter? EduMentor hỗ trợ cả Android và iOS. Tác giả chọn React Native vì ngôn ngữ TypeScript/JavaScript quen thuộc hơn với đội ngũ phát triển, dễ chuyển đổi hơn so với Dart của Flutter. Mặc dù Flutter có hiệu năng render tốt hơn nhờ C++ và thư viện Skia, React Native đủ đáp ứng nhu cầu của ứng dụng và cho phép tái sử dụng 80–90% mã nguồn giữa hai nền tảng.

3. Quy trình để trở thành gia sư trên nền tảng diễn ra như thế nào? Người dùng thực hiện use case "Đăng kí trở thành gia sư" (Bảng 24, Sơ đồ 22) bằng cách chỉnh sửa thông tin hồ sơ và tải lên hình ảnh bằng cấp, chữ ký và căn cước. Quản trị viên sau đó xem xét yêu cầu qua trang admin (Bảng 28, Sơ đồ 26) và phê duyệt hoặc từ chối yêu cầu này.

4. Cơ sở dữ liệu MongoDB được tổ chức như thế nào để lưu trữ dữ liệu của hệ thống? Hệ thống sử dụng các collection chính gồm: thông tin người dùng, trợ giảng chat-bot, môn học, yêu cầu dạy học, phòng chat (Bảng 34), chi tiết chat (Bảng 35), chi tiết chat bot (Bảng 36) và đánh giá (Bảng 37). Mỗi document được tự động gán trường _id kiểu ObjectId và đánh chỉ mục tự động để tối ưu truy vấn. Dữ liệu được lưu trữ trên MongoDB Atlas (cloud), còn hình ảnh và file được lưu riêng trên Firebase.

5. Admin có những quyền quản trị nào trong hệ thống EduMentor? Quản trị viên có 7 use case chính bao gồm: đăng nhập, xem/chỉnh sửa/xóa người dùng, xem danh sách và chi tiết lớp học/yêu cầu dạy học, xem và phê duyệt yêu cầu trở thành gia sư, xem thông tin tổng quan hệ thống, chỉnh sửa thông tin cá nhân và đổi mật khẩu. Giao diện admin được xây dựng bằng ReactJS, tách biệt hoàn toàn với ứng dụng di động dành cho người dùng thông thường.


Kết luận

Khóa luận "Xây Dựng Ứng Dụng Quản Lý Gia Sư Tích Hợp Trợ Giảng AI Chatbot" (EduMentor) của tác giả Phạm Mạnh Lợi, trường Đại học Công nghệ Thông tin – ĐHQG TP. HCM, trình bày quá trình thiết kế và xây dựng một nền tảng ba thành phần gồm ứng dụng di động React Native (Android/iOS), trang admin ReactJS và backend ExpressJS tích hợp OpenAI API. Hệ thống giải quyết bài toán kết nối học viên–gia sư và hỗ trợ học tập thông qua trợ giảng AI Chatbot trong một ứng dụng thống nhất, lấp đầy khoảng trống mà các nền tảng gia sư trực tuyến hiện có tại Việt Nam chưa đáp ứng. Với 22 use case cho người dùng, 7 use case cho admin, và toàn bộ hệ thống được triển khai thực tế trên môi trường cloud, đề tài là một ví dụ thực hành có giá trị tham khảo cho các dự án phát triển ứng dụng di động đa nền tảng tích hợp AI tại bậc đại học.