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 và xu hướng giáo dục trực tuyến (e-learning) tăng trưởng mạnh mẽ trên toàn cầu—đặc biệt sau giai đoạn đại dịch Covid-19 trong các năm 2021–2022—nhu cầu học tập từ xa đã trở thành một phương thức tiếp cận tri thức phổ biến. Tiếng Anh đóng vai trò là ngôn ngữ toàn cầu phục vụ công việc và giao tiếp quốc tế, khiến số lượng người có nhu cầu học tập tại Việt Nam (bao gồm học sinh, sinh viên và người đi làm) ngày càng gia tăng. Tuy nhiên, rào cản về thời gian và chi phí khiến nhiều người khó tiếp cận các khóa học trực tiếp chất lượng.

Mặc dù thị trường đã có các nền tảng quốc tế lớn như Udemy hay Coursera, các hệ thống này hướng đến người dùng toàn cầu và chưa tập trung chuyên biệt vào việc học tiếng Anh cho bối cảnh học tập của người Việt Nam. Nội dung trên các nền tảng này có thể không đồng đều hoặc đòi hỏi chi phí định kỳ cao. Các nền tảng học ngôn ngữ như Duolingo hay Babbel chủ yếu tập trung vào tương tác sơ cấp, thiếu lộ trình học thuật bài bản có cấp chứng chỉ và cơ chế thị trường cho giảng viên. Trong khi đó, các hệ thống giáo dục trực tuyến nội địa như Học Mãi hay Topica chủ yếu tập trung vào giáo dục phổ thông. Từ thực tế này, đề tài "Xây dựng website bán khóa học tiếng Anh" được thực hiện bởi sinh viên Trần Văn An và Đặng Xuân Hùng (ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh) nhằm cung cấp một nền tảng chuyên biệt phục vụ việc tìm kiếm, mua bán và tự học tiếng Anh trực tuyến.

Mục tiêu nghiên cứu của đề tài bao gồm 5 mục tiêu cụ thể:

  1. Xây dựng nền tảng bán khóa học tiếng Anh trực tuyến dễ sử dụng, cung cấp nội dung đa dạng từ cơ bản đến nâng cao.
  2. Tạo giao diện thân thiện, hỗ trợ học viên tìm kiếm và mua khóa học thuận tiện.
  3. Phát triển hệ thống quản trị khóa học và người dùng cho quản trị viên và điều hành viên.
  4. Tích hợp chức năng thanh toán trực tuyến thông qua các cổng thanh toán phổ biến.
  5. Xây dựng hệ thống cấp chứng chỉ cho học viên sau khi hoàn thành khóa học và vượt qua kiểm tra cuối khóa.

Nhiệm vụ nghiên cứu được phân định thành 7 nội dung:

  1. Khảo sát và phân tích nhu cầu thực tế trong việc học và mua khóa học tiếng Anh trực tuyến, xác định các yêu cầu chức năng và phi chức năng.
  2. Thiết kế kiến trúc hệ thống theo mô hình phân tầng (giao diện, backend và cơ sở dữ liệu), bảo đảm tính mở rộng và bảo trì.
  3. Xây dựng cơ sở dữ liệu phục vụ quản lý khóa học, giỏ hàng, đơn hàng, người dùng và phân quyền truy cập.
  4. Phát triển các chức năng chính: đăng ký/đăng nhập, tìm kiếm/lọc khóa học, thanh toán, xem khóa học đã mua, đánh giá khóa học.
  5. Thiết kế giao diện người dùng tương thích trên nền tảng web.
  6. Tích hợp cơ chế xác thực, bảo mật thông tin cá nhân và an toàn dữ liệu.
  7. Thực hiện kiểm thử hệ thống, đánh giá hiệu năng, độ ổn định và đề xuất hướng nâng cao (tích hợp chatbot, học qua video, quản lý lộ trình học tập).

Đối tượng nghiên cứu của đồ án là nhu cầu học tiếng Anh của các nhóm người học cùng các quy trình nghiệp vụ phần mềm liên quan (mua bán khóa học, làm bài tập, theo dõi tiến độ, quản trị nội dung). Về khía cạnh kỹ thuật, đối tượng bao gồm công nghệ giao diện người dùng (ReactJS, Chakra UI), phía máy chủ (Spring Boot, Hibernate, RESTful APIs, FastAPI) và lưu trữ dữ liệu (PostgreSQL, MinIO).

Phạm vi nghiên cứu tập trung vào các tính năng: quản lý khóa học, giao dịch mua bán trực tuyến, theo dõi tiến độ học tập, cấp chứng chỉ, quản lý thảo luận/bình luận, làm bài tập/bài kiểm tra, chấm bài luyện viết và gợi ý khóa học bằng trí tuệ nhân tạo. Thời gian thực hiện đồ án diễn ra từ tháng 01/2025 đến tháng 06/2025.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng kỹ thuật và phương pháp luận dựa trên các khung lý thuyết, công nghệ và mô hình tính toán sau:

  • Kiến trúc phần mềm Client-Server phân tầng: Tách biệt giao diện người dùng (Client) và xử lý máy chủ (Server). Cấu trúc máy chủ triển khai theo mô hình phân lớp gồm Controller (điều hướng yêu cầu HTTP), Service (xử lý logic nghiệp vụ), Repository (thao tác dữ liệu) và Entity (ánh xạ thực thể cơ sở dữ liệu).
  • Khung ứng dụng Spring Framework và Spring Boot: Sử dụng cơ chế Spring IoC Container để quản lý Spring Bean thông qua kỹ thuật Dependency Injection (DI); áp dụng các stereotype annotation (@Component, @Service, @Repository, @Controller); quản trị dữ liệu thông qua Spring Data JPA và Hibernate; cấu hình bảo mật toàn diện bằng Spring Security kết hợp JSON Web Token (JWT) để xác thực và phân quyền API.
  • Thư viện giao diện ReactJS: Ứng dụng kiến trúc Component-Based, Virtual DOM, cú pháp JSX, quản lý trạng thái (State Management) và định tuyến điều hướng bằng React Router.
  • Dịch vụ trí tuệ nhân tạo với FastAPI: Xây dựng dịch vụ API hiệu suất cao bằng Python hỗ trợ xử lý bất đồng bộ để phục vụ suy luận thời gian thực cho hệ thống gợi ý khóa học.
  • Mô hình học tăng cường (Reinforcement Learning - RL): Ánh xạ bài toán gợi ý khóa học thành Quy trình quyết định Markov (Markov Decision Process - MDP) bao gồm Trạng thái ($S$ - đặc trưng người dùng), Hành động ($A$ - đề xuất khóa học), Hàm chuyển tiếp ($T$), Hàm phần thưởng ($R$ - độ tương thích, mức độ hài lòng, tỷ lệ hoàn thành) và Chính sách ($\pi$).
  • Mạng Q sâu (Deep Q-Network - DQN): Sử dụng mạng nơ-ron sâu để xấp xỉ hàm $Q(s, a)$, tích hợp kỹ thuật mạng mục tiêu (Target Network), bộ nhớ phát lại trải nghiệm (Experience Replay) và tối ưu hóa bằng hàm mất mát sai số bình phương trung bình (Mean Squared Error - MSE).
  • Hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL: Đảm bảo tính toàn vẹn dữ liệu giao dịch và lưu trữ quan hệ có cấu trúc.
  • Dịch vụ lưu trữ đối tượng MinIO: Lưu trữ tài nguyên tĩnh như tập tin âm thanh, hình ảnh và video bài học.

Phương pháp nghiên cứu thực tế được triển khai bao gồm:

  • Phương pháp nghiên cứu tài liệu: Tổng hợp tài liệu kỹ thuật chính thức về Spring Boot, ReactJS, JWT, PostgreSQL, FastAPI và các tài liệu tham khảo chuyên ngành.
  • Phương pháp phân tích - đối sánh hiện trạng: Khảo sát các nền tảng thương mại khóa học đang hoạt động (Udemy, Coursera) để rút ra các ưu điểm về luồng nghiệp vụ, giao diện học tập và cơ chế phân loại.
  • Phương pháp phân tích và thiết kế hướng đối tượng (OOAD): Xác định yêu cầu chức năng/phi chức năng, lập tài liệu đặc tả và mô hình hóa hệ thống thông qua các sơ đồ UML (Lược đồ Use Case, Lược đồ tuần tự Sequence Diagram, Lược đồ lớp Class Diagram).
  • Phương pháp thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa dữ liệu và xây dựng lược đồ thực thể cho 33 bảng chức năng.
  • Phương pháp thực nghiệm kiểm thử: Xây dựng danh sách ca kiểm thử (testcases) cho các luồng xử lý chính và kiểm thử đơn vị với JUnit.

Nguồn dữ liệu sử dụng trong nghiên cứu bao gồm: dữ liệu khảo sát hiện trạng nghiệp vụ e-learning; dữ liệu thuộc tính học viên (nhóm tuổi, mục tiêu, trình độ thành thạo ngôn ngữ hiện tại, kỹ năng ưa thích, thời gian học hàng tuần) và thuộc tính khóa học (danh mục, mức độ khó, thời lượng, xếp hạng, số bài học, điều kiện tiên quyết) được mã hóa one-hot và chuẩn hóa số học để huấn luyện mô hình DQN.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc tách rời (decoupled architecture) giữa Front-end và Back-end thông qua các RESTful API và giao thức WebSocket:

Thành phần Công nghệ / Thư viện chính Vai trò kỹ thuật
Front-end ReactJS, Chakra UI (@chakra-ui/react, @chakra-ui/icons), Emotion, MUI icons, Framer Motion Xây dựng giao diện đơn trang (SPA), quản lý trạng thái, tạo hoạt ảnh và biểu mẫu tương tác
Giao tiếp Front-end Axios, @stomp/stompjs (STOMP qua WebSocket), React Router, React OAuth Google Gửi yêu cầu HTTP đến máy chủ, giao tiếp thời gian thực cho tin nhắn, định tuyến trang và đăng nhập Google
Xử lý nội dung Web Draft-js, Quill, React-beautiful-dnd, Luxon, Chart.js (react-chartjs-2) Soạn thảo văn bản bài học dạng WYSIWYG, kéo thả sắp xếp bài giảng, định dạng ngày giờ và trực quan hóa thống kê
Back-end chính Java, Spring Boot (Web, Data JPA, Security), Maven, Lombok Cung cấp RESTful API, thực thi nghiệp vụ, kiểm soát giao dịch và phân quyền bảo mật
Dịch vụ Gợi ý AI Python, FastAPI, PyTorch / TensorFlow Xây dựng dịch vụ mạng nơ-ron Deep Q-Network xử lý đề xuất khóa học cá nhân hóa theo thời gian thực
Lưu trữ dữ liệu PostgreSQL, MinIO Lưu trữ dữ liệu quan hệ giao dịch và lưu trữ tệp đối tượng (ảnh, tài liệu, video bài giảng)
Kiểm thử & Công cụ JUnit, Postman, Git, ESLint, Prettier Kiểm thử đơn vị mã nguồn máy chủ, kiểm thử API, quản lý phiên bản và chuẩn hóa mã nguồn

Cơ sở dữ liệu của hệ thống được tổ chức thành 33 bảng chuyên biệt nhằm đáp ứng các phân hệ nghiệp vụ:

  • Phân hệ người dùng và xác thực: users, tokens.
  • Phân hệ danh mục và phân loại: categories, course_category, topics, levels, prices.
  • Phân hệ khóa học và bài học: courses, course_drips, sections, lessons, lesson_trackers, faqs, reviews.
  • Phân hệ gói combo: bundles, bundles_course.
  • Phân hệ thương mại và giao dịch: carts, cart_items, orders, order_items, payments, enrollments, favourites.
  • Phân hệ kiểm tra và đánh giá: tests, test_parts, test_question_groups, test_questions, test_results, user_answers.
  • Phân hệ luyện viết: writing_tasks, writing_results.
  • Phân hệ tương tác và thông báo: messages, notifications.

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

Chương 1: Cơ sở lý thuyết

Chương 1 trình bày chi tiết các công nghệ nền tảng và mô hình lý thuyết được áp dụng trong đồ án:

  • Spring Framework và Spring Boot: Trình bày nguyên lý vận hành của Spring Container, cơ chế Dependency Injection (DI) quản lý vòng đời Spring Bean; vai trò của các chú thích @Component, @Service, @Repository, @Controller; khả năng tối ưu truy vấn cơ sở dữ liệu qua Spring Data JPA/Hibernate và tầng bảo mật Spring Security với JWT.
  • Công nghệ ReactJS: Phân tích các ưu điểm của kiến trúc thành phần (Component-Based), cơ chế DOM ảo (Virtual DOM) giúp giảm thiểu thao tác trực tiếp với DOM thực, cú pháp JSX, quản lý trạng thái (state) nội tại và thư viện điều hướng React Router.
  • FastAPI và dịch vụ phụ trợ: Nêu rõ vai trò của FastAPI trong việc xây dựng các API Python bất đồng bộ phục vụ tích hợp mô hình học máy theo thời gian thực.
  • Kiến trúc hệ thống: Phân tích mô hình Client-Server, nêu rõ ưu điểm tập trung dữ liệu, khả năng mở rộng độc lập giữa client và máy chủ; đồng thời phân tích các rủi ro về điểm hỏng đơn lẻ (single point of failure) khi máy chủ quá tải. Giới thiệu vai trò của hệ quản trị cơ sở dữ liệu PostgreSQL và cấu trúc phân chia gói mã nguồn Back-end (src/main/java, src/main/resources, src/test/java, pom.xml).
  • Ứng dụng Trí tuệ nhân tạo trong đề xuất khóa học: Trình bày chi tiết lý thuyết học tăng cường (RL) và thuật toán Deep Q-Network (DQN). Mô tả cấu trúc gồm Q-Network, Target Network, kỹ thuật lưu trữ trải nghiệm quá khứ (Experience Replay) và hàm mất mát sai số bình phương trung bình (MSE).
  • Biểu diễn đặc trưng (Feature Representation): Xây dựng vector trạng thái từ các đặc trưng người dùng (nhóm tuổi, mục tiêu học tập, trình độ thành thạo ngôn ngữ hiện tại, kỹ năng ưa thích, thời gian học hàng tuần) và đặc trưng khóa học (danh mục, mức độ khó, thời lượng, xếp hạng, số bài học, điều kiện tiên quyết).
  • Chỉ số đánh giá và mô hình cơ sở (Baselines): Đưa ra các chỉ số đánh giá gồm Tỷ lệ thành công (Hit Rate@K), Xếp hạng tương hỗ trung bình (Mean Reciprocal Rank - MRR) và Mức tăng tích lũy chiết khấu chuẩn hóa (Normalized Discounted Cumulative Gain - NDCG). Hệ thống so sánh mô hình DQN với ba phương pháp cơ sở: Khuyến nghị ngẫu nhiên (Random Recommendation), Khuyến nghị theo độ phổ biến (Popularity Recommendation) và Khuyến nghị dựa trên nội dung (Content-based Recommendation).

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Chương 2 tập trung vào việc nghiên cứu thực tiễn và mô hình hóa các yêu cầu nghiệp vụ của hệ thống:

  • Khảo sát hiện trạng các hệ thống e-learning: Đánh giá chi tiết giao diện, tính năng và cơ chế học tập của Udemy (phân loại cấp độ, hệ thống bài tập thực hành, theo dõi tiến độ, chính sách giá và học ngoại tuyến) và Coursera (chuyên môn hóa tiếng Anh giao tiếp, học thuật, thương mại; bài giảng video ghi hình sẵn, bài tập định kỳ, diễn đàn thảo luận và gói thuê bao Coursera Plus).
  • Xác định yêu cầu chức năng: Phân loại chi tiết theo từng nhóm đối tượng người dùng:
    • Người dùng vãng lai (Guest): YC01 Đăng ký tài khoản (nhập tên đăng nhập duy nhất, họ tên, số điện thoại, giới tính).
    • Chức năng chung: YC02 Đăng nhập (bằng Email/Username kết hợp mật khẩu hoặc Google OAuth), YC03 Quên mật khẩu (gửi OTP qua email), YC04 Xem thông báo cá nhân/hệ thống, YC33 Chỉnh sửa thông tin cá nhân.
    • Học sinh (Student): YC05 Tìm kiếm và lọc khóa học, YC06 Xem chi tiết khóa học, YC07 Quản lý giỏ hàng, YC08 Mua khóa học (thanh toán trực tuyến), YC09 Quản lý danh sách yêu thích, YC10 Xem danh sách khóa học đã mua, YC11 Học bài, YC12 Làm các bài tập, YC13 Đánh giá khóa học, YC14 Nhắn tin văn bản với giảng viên, YC35 Hỏi đáp với chatbot, YC40 Làm bài luyện viết, YC41 Xem danh sách khóa học được AI đề xuất.
    • Giáo viên (Teacher): YC15 Quản lý thông tin khóa học, YC16 Quản lý phần trong khóa học, YC17 Quản lý bài học, YC18 Quản lý bài kiểm tra, YC19 Quản lý phần của bài kiểm tra, YC20 Quản lý nhóm câu hỏi, YC21 Quản lý câu hỏi, YC22 Xem lịch sử làm kiểm tra của học viên, YC23 Tương tác giải đáp thắc mắc, YC24 Xem thống kê số liệu khóa học/học viên, YC27 Quản lý ràng buộc bài học, YC28 Cập nhật giá tiền, YC29 Quản lý câu hỏi thường gặp (FAQ), YC30 Cập nhật lưu ý khóa học, YC31 Quản lý đáp án của câu hỏi, YC34 Quản lý combo khóa học, YC36 Quản lý bài luyện viết, YC37 Chấm điểm bài viết, YC38 Nhắc nhở học viên có nguy cơ bỏ học, YC39 Theo dõi tiến độ học tập.
    • Quản trị viên (Admin): YC25 Kiểm tra và phê duyệt khóa học trước khi công khai, YC26 Quản lý tài khoản người dùng (thêm, sửa, xóa, kích hoạt).
  • Yêu cầu hệ thống và phi chức năng: Đặt ra các chỉ tiêu YCHT01 (khả năng mở rộng kiến trúc), YCHT02 (khả năng vận hành và giao diện thân thiện), YCHT03 (khả năng truy cập đa thiết bị). Các yêu cầu phi chức năng bao gồm tính tiện dụng (giao diện dễ thao tác), tính trải nghiệm (tốc độ hồi đáp nhanh) và tính tiến hóa (dễ dàng bảo trì, nâng cấp, sao lưu phục hồi dữ liệu).
  • Mô hình hóa yêu cầu: Xây dựng các sơ đồ Use Case cho từng tác nhân (Guest, Student, Teacher, Admin). Thiết lập bảng đặc tả Use Case chi tiết, tiêu biểu là Use Case Đăng ký (UC_001) với quy trình xác thực mã OTP gửi về email (thời gian hết hạn OTP là 5 phút, mã gồm 6 chữ số) cùng hệ thống quy tắc kiểm tra tính hợp lệ của dữ liệu đầu vào (độ dài mật khẩu tối thiểu 8 ký tự, bắt buộc chứa chữ hoa, chữ thường, số, ký tự đặc biệt; ngày sinh không được là ngày tương lai).

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

Chương 3 triển khai thiết kế cấu trúc tĩnh và động của toàn bộ phần mềm:

  • Thiết kế Lược đồ lớp (Class Diagram): Xây dựng cấu trúc các lớp thực thể, lớp dịch vụ và bộ điều khiển, định nghĩa mối quan hệ kế thừa và phụ thuộc giữa các thành phần logic.
  • Thiết kế Lược đồ tuần tự (Sequence Diagram): Xây dựng chi tiết luồng thông điệp cho hơn 60 kịch bản nghiệp vụ của hệ thống (đăng ký, gửi lại OTP, xác thực đăng ký, đăng nhập thường và Google, quên mật khẩu, mua hàng, thanh toán, tương tác bài tập, các thao tác quản trị khóa học, bài học, nhóm câu hỏi, bài kiểm tra, bài luyện viết, chấm điểm, nhắc nhở sinh viên, xem tiến độ và hỏi đáp chatbot).
  • Thiết kế Cơ sở dữ liệu: Xây dựng lược đồ cơ sở dữ liệu quan hệ chi tiết cho 33 bảng dữ liệu. Mỗi bảng được chuẩn hóa các trường thuộc tính, khóa chính (Primary Key), khóa ngoại (Foreign Key) và các ràng buộc dữ liệu.
  • Thiết kế Hệ thống gợi ý thông minh: Thiết lập luồng trao đổi dữ liệu giữa backend Spring Boot và dịch vụ FastAPI chứa mô hình Deep Q-Network để trả về danh sách đề xuất khóa học phù hợp theo hồ sơ người học.
  • Thiết kế Giao diện: Xây dựng các màn hình giao diện người dùng tương ứng với các phân hệ chức năng: màn hình xác thực, danh mục và bộ lọc khóa học, chi tiết khóa học, giỏ hàng và thanh toán, bàn học trực tuyến, màn hình làm bài kiểm tra và bài luyện viết, giao diện trao đổi tin nhắn, giao diện hỏi đáp chatbot, các biểu mẫu quản lý nội dung giảng dạy của giáo viên, bảng điều khiển thống kê và trang duyệt khóa học của quản trị viên.

Chương 4: Kiểm thử hệ thống

Chương 4 thiết lập phạm vi và phương pháp đánh giá chất lượng phần mềm:

  • Phạm vi kiểm thử: Xác định các module chức năng cần kiểm thử, bao gồm quy trình đăng ký/đăng nhập/quên mật khẩu, quy trình tìm kiếm/mua khóa học/thanh toán, quy trình học tập/làm bài kiểm tra/chấm điểm luyện viết và các chức năng quản trị khóa học/người dùng.
  • Danh sách ca kiểm thử và kết quả: Thiết lập bảng danh mục các testcase chi tiết (mô tả kịch bản kiểm thử, dữ liệu đầu vào, kết quả mong đợi và kết quả thực tế thu được trong quá trình chạy thử nghiệm phần mềm).

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

Khóa luận đã hoàn thành các nội dung kỹ thuật và đạt được các kết quả cụ thể theo đúng đề cương:

  • Xây dựng thành công nền tảng website thương mại khóa học tiếng Anh hoạt động trên môi trường web với giao diện thiết kế bằng ReactJS và thư viện Chakra UI, có khả năng tương thích trên máy tính và máy tính bảng.
  • Phát triển hệ thống máy chủ Back-end trên nền tảng Spring Boot, cung cấp hệ thống RESTful API hoàn chỉnh phục vụ quản lý khóa học, quản lý bài học phân tầng, quản lý người dùng và phân quyền bảo mật qua Spring Security và JWT.
  • Thiết kế và triển khai cơ sở dữ liệu quan hệ PostgreSQL với 33 bảng dữ liệu chuẩn hóa, đáp ứng đầy đủ các mối quan hệ nghiệp vụ phức tạp từ mua bán, ghi nhận tiến độ (lesson_trackers), tổ chức bài thi (tests, test_parts, test_questions), chấm bài viết (writing_tasks, writing_results) đến các gói kết hợp (bundles).
  • Tích hợp cổng thanh toán trực tuyến hỗ trợ người học mua khóa học, quản lý giỏ hàng (carts, cart_items) và ghi nhận trạng thái thanh toán (payments, orders).
  • Ứng dụng thành công mô hình học tăng cường Deep Q-Network (DQN) triển khai qua dịch vụ FastAPI để đưa ra các gợi ý khóa học cá nhân hóa dựa trên vector đặc trưng của học viên và khóa học. Mô hình DQN được thực nghiệm chứng minh vượt trội hơn so với các phương pháp cơ sở (Random, Popularity, Content-based) trên các chỉ số Hit Rate@K, MRR và NDCG.
  • Cung cấp các công cụ sư phạm hỗ trợ giảng viên: hệ thống bài kiểm tra trắc nghiệm phân nhóm câu hỏi, module bài luyện viết có chức năng chấm điểm, tính năng tự động phát hiện và nhắc nhở học viên có nguy cơ bỏ học, cùng công cụ hỏi đáp tự động qua chatbot.

Về mặt đóng góp so với các công trình liên quan:

  • Khắc phục khoảng trống của các nền tảng quốc tế (Udemy, Coursera) bằng cách xây dựng một hệ thống bán khóa học tập trung chuyên biệt vào tiếng Anh được bản địa hóa cho người học tại Việt Nam.
  • Kết hợp được mô hình thị trường khóa học trực tuyến (marketplace) với các công cụ quản lý học tập chuyên sâu (LMS) như quản lý lộ trình học tập, ràng buộc bài học, chấm điểm luyện viết và giao tiếp giảng viên - học viên qua tin nhắn thời gian thực (WebSocket).

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

Khóa luận chỉ ra một số hạn chế trong quá trình thực hiện:

  • Thời gian nghiên cứu và hoàn thành đề tài tương đối ngắn (trong vòng 6 tháng, từ tháng 01/2025 đến tháng 06/2025).
  • Kiến thức và kinh nghiệm thực tiễn của nhóm sinh viên trong việc triển khai các dự án phần mềm quy mô lớn còn có những giới hạn nhất định về mặt kỹ thuật.

Các hướng phát triển tiếp theo được tác giả đề xuất bao gồm:

  • Hoàn thiện và nâng cấp tính năng tự động cấp chứng chỉ cho học viên sau khi hoàn thành khóa học và vượt qua bài kiểm tra cuối khóa.
  • Nâng cấp khả năng tương tác của chatbot hỗ trợ học tập, nghiên cứu tích hợp sâu hơn các mô hình ngôn ngữ lớn để giải đáp thắc mắc tiếng Anh chuyên sâu.
  • Phát triển tính năng học tập thông qua video tương tác và quản lý lộ trình học tập thích ứng nâng cao.
  • Mở rộng năng lực chịu tải và tối ưu hóa hiệu năng hệ thống khi số lượng người dùng và khối lượng dữ liệu khóa học tăng trưởng trong tương lai.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho các đối tượng sau:

  • Sinh viên ngành Công nghệ Thông tin và Công nghệ Phần mềm: Cung cấp tài liệu mẫu về quy trình phát triển một dự án phần mềm hoàn chỉnh, từ bước khảo sát hiện trạng, mô hình hóa nghiệp vụ bằng UML (với hệ thống Use Case và Sequence Diagram chi tiết), đến thiết kế cơ sở dữ liệu quan hệ quy mô lớn.
  • Lập trình viên phát triển web phân tầng: Tham khảo kiến trúc kết hợp giữa ReactJS (Front-end) và Spring Boot (Back-end), cơ chế bảo mật xác thực phân quyền qua Spring Security/JWT, cũng như cách tổ chức thư viện giao diện hiện đại (Chakra UI, Emotion, Framer Motion).
  • Người nghiên cứu hệ thống gợi ý (Recommender Systems): Tham khảo phương pháp mô hình hóa bài toán gợi ý khóa học dưới dạng học tăng cường (RL/DQN), cách xây dựng vector đặc trưng người dùng - khóa học và phương pháp đánh giá qua các chỉ số Hit Rate@K, MRR, NDCG đối sánh với các baseline truyền thống.

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

1. Hệ thống phân chia quyền hạn và chức năng cho những nhóm tác nhân nào?

Hệ thống xác định 4 nhóm tác nhân (actors):

  • Người dùng vãng lai (Guest): Người chưa có tài khoản, chỉ có thể xem trang chủ và thực hiện đăng ký tài khoản.
  • Học sinh (Student): Người dùng mặc định có tài khoản, được phép tìm kiếm, xem chi tiết, quản lý giỏ hàng, mua khóa học, học bài, làm bài tập, làm bài luyện viết, nhắn tin với giáo viên, hỏi đáp với chatbot, đánh giá khóa học và xem đề xuất khóa học từ AI.
  • Giáo viên (Teacher): Người đăng tải và quản lý nội dung khóa học, bài học, bài kiểm tra, câu hỏi trắc nghiệm, bài luyện viết; chấm điểm bài viết; theo dõi tiến độ; nhắc nhở học viên có nguy cơ bỏ học; quản lý combo khóa học và xem số liệu thống kê.
  • Quản trị viên (Admin): Tham gia quản lý chung toàn hệ thống, chịu trách nhiệm kiểm tra và phê duyệt khóa học trước khi công khai, quản lý và kích hoạt tài khoản người dùng.

2. Mô hình trí tuệ nhân tạo nào được ứng dụng để gợi ý khóa học và đánh giá qua các tiêu chí nào?

Hệ thống sử dụng mô hình học tăng cường Deep Q-Network (DQN) tích hợp mạng nơ-ron sâu, được phục vụ suy luận thời gian thực qua framework FastAPI. Bài toán được mô hình hóa theo Quy trình quyết định Markov (MDP) với trạng thái là vector kết hợp đặc trưng học viên và khóa học. Mô hình được đánh giá qua 3 chỉ số chuẩn gồm: Tỷ lệ thành công (Hit Rate@K), Xếp hạng tương hỗ trung bình (MRR) và Mức tăng tích lũy chiết khấu chuẩn hóa (NDCG), cho kết quả thực nghiệm vượt trội so với 3 phương pháp đối sánh (gợi ý ngẫu nhiên, gợi ý theo độ phổ biến và gợi ý dựa trên nội dung).

3. Quy trình đăng ký tài khoản (UC_001) có những ràng buộc nghiệp vụ và kiểm tra bảo mật nào?

Người dùng phải cung cấp họ tên, tên đăng nhập (duy nhất), số điện thoại, giới tính, email, mật khẩu và ngày sinh. Hệ thống kiểm tra các ràng buộc: email hợp lệ và chưa tồn tại, tên đăng nhập chưa tồn tại, ngày sinh không được ở tương lai, mật khẩu phải có độ dài tối thiểu 8 ký tự và bắt buộc chứa ít nhất một chữ cái thường, một chữ cái hoa, một chữ số và một ký tự đặc biệt. Sau khi thông tin hợp lệ, hệ thống tạo tài khoản ở trạng thái chờ và gửi mã OTP gồm 6 chữ số qua email (mã có hiệu lực trong vòng 5 phút) để người dùng xác thực kích hoạt tài khoản.

4. Cơ sở dữ liệu của hệ thống được tổ chức thành những phân nhóm bảng nào?

Cơ sở dữ liệu PostgreSQL gồm 33 bảng chức năng được phân loại theo các nhóm nghiệp vụ: nhóm người dùng và bảo mật (users, tokens); nhóm phân loại (categories, course_category, topics, levels, prices); nhóm nội dung khóa học (courses, course_drips, sections, lessons, lesson_trackers, faqs, reviews); nhóm gói combo (bundles, bundles_course); nhóm thương mại (carts, cart_items, orders, order_items, payments, enrollments, favourites); nhóm bài thi trắc nghiệm (tests, test_parts, test_question_groups, test_questions, test_results, user_answers); nhóm luyện viết (writing_tasks, writing_results); và nhóm giao tiếp (messages, notifications).

Kết luận

Khóa luận tốt nghiệp "Xây dựng website bán khóa học tiếng Anh" của sinh viên Trần Văn An và Đặng Xuân Hùng đã hoàn thành toàn diện các mục tiêu đề ra về mặt khảo sát, thiết kế và cài đặt hệ thống. Đồ án xây dựng thành công một giải pháp phần mềm phân tầng hoàn chỉnh, kết hợp hiệu quả giữa Spring Boot, ReactJS, PostgreSQL và dịch vụ trí tuệ nhân tạo FastAPI ứng dụng thuật toán học tăng cường Deep Q-Network. Kết quả nghiên cứu không chỉ đáp ứng các yêu cầu thương mại và quản lý đào tạo trực tuyến đặc thù cho ngôn ngữ tiếng Anh tại Việt Nam mà còn là tài liệu tham khảo có giá trị cao về mặt kỹ thuật cho sinh viên và các nhà phát triển phần mềm giáo dục.