E-Learning Management System — Nền tảng học trực tuyến
Nền tảng E-Learning full-stack hỗ trợ quản lý khóa học, bài giảng, đăng ký học, quiz, theo dõi tiến độ và thanh toán khóa học trực tuyến. Hệ thống được xây dựng với Spring Boot, Vue 3 và MySQL, hỗ trợ nhiều vai trò người dùng và quy trình học tập từ đăng ký khóa học đến đánh giá kết quả.
Câu chuyện dự án
Quá trình, quyết định và kết quả nổi bật của dự án.
Tổng quan
E-Learning Management System là nền tảng học trực tuyến được xây dựng nhằm quản lý toàn bộ quy trình từ tạo và phân phối khóa học đến đăng ký học, theo dõi tiến độ và đánh giá kết quả.
Hệ thống hỗ trợ ba nhóm người dùng chính:
Student · Teacher · Admin
Trong đó người học có thể khám phá khóa học, đăng ký học, truy cập bài giảng, thực hiện quiz và theo dõi kết quả; giáo viên có thể quản lý nội dung khóa học và bài kiểm tra; phía quản trị có thể quản lý các dữ liệu chính của nền tảng.
Project được xây dựng theo mô hình frontend/backend tách biệt:
Vue 3 Client
↓
REST API
↓
Spring Boot
↓
JPA / DAO
↓
MySQL
Chức năng chính
Hệ thống tập trung vào các nhóm nghiệp vụ chính:
Đăng ký và đăng nhập tài khoản.
JWT Authentication.
Quản lý hồ sơ người dùng.
Phân quyền Student, Teacher và Admin.
Quản lý danh mục khóa học.
Tạo và quản lý khóa học.
Quản lý bài giảng theo từng khóa học.
Đăng ký tham gia khóa học.
Theo dõi tiến độ học tập.
Ghi nhận bài học gần nhất của người học.
Tạo và quản lý Quiz.
Quản lý câu hỏi và đáp án.
Lưu kết quả và điểm số bài kiểm tra.
Checkout và thanh toán khóa học.
Tích hợp PayPal.
Dashboard và trực quan hóa dữ liệu.
Các domain chính như Course, Enrollment, Lecture, Quiz, Question, Answer và QuizResult đều có controller riêng trong backend thay vì gom toàn bộ logic vào một module duy nhất.
Quản lý quá trình học tập
Một trong những phần chính của project là kết nối các nghiệp vụ học tập thành một flow thống nhất:
Người dùng đăng ký khóa học trước khi tham gia nội dung học, sau đó hệ thống có thể theo dõi bài giảng và lưu lại kết quả quiz.
Điều này giúp project không chỉ là một hệ thống CRUD khóa học mà thể hiện được vòng đời cơ bản của một nền tảng LMS.
Quiz & Assessment
Hệ thống triển khai module đánh giá kiến thức gồm:
Quiz
↓
Question
↓
Answer
↓
Quiz Result
Giáo viên có thể tổ chức quiz theo khóa học, quản lý câu hỏi và đáp án; kết quả làm bài của người học được lưu lại để phục vụ theo dõi điểm số và tiến độ học tập.
Frontend tích hợp PayPal JavaScript SDK cho luồng checkout, đồng thời hệ thống quản lý giá khóa học và enrollment sau quá trình thanh toán. PayPal SDK có trong dependency thực tế của frontend.
Backend Architecture
Backend sử dụng Spring Boot và tổ chức theo layered architecture:
Controller phụ trách REST API, Service xử lý business logic, DAO làm việc với tầng dữ liệu và DTO được sử dụng để truyền dữ liệu giữa các thành phần của hệ thống.
Backend sử dụng Spring Data JPA + MySQL cho persistence và JWT cho authentication. Application được đóng gói dưới dạng WAR để có thể triển khai trên servlet container như Tomcat.
phù hợp với các nhóm nghiệp vụ khác nhau của nền tảng E-Learning.
Quiz & Assessment
Triển khai hệ thống câu hỏi, đáp án và lưu kết quả bài kiểm tra thay vì chỉ cung cấp nội dung khóa học.
Online Course Payment
Tích hợp PayPal vào quy trình checkout và enrollment khóa học.
Layered Spring Backend
Backend tổ chức theo:
Controller → Service → DAO → Database
giúp tách API, business logic và data access rõ ràng.
Kết quả
Project xây dựng được một nền tảng E-Learning full-stack với các nghiệp vụ chính được kết nối từ:
Authentication
→ Course Management
→ Enrollment
→ Lecture Management
→ Learning Progress
→ Quiz & Assessment
→ Online Payment
Điểm đáng chú ý của project là việc kết hợp các domain học tập, đánh giá và thanh toán thành một hệ thống thống nhất thay vì chỉ xây dựng website CRUD khóa học.
Backend thể hiện khả năng xây dựng REST API với Spring Boot, tổ chức theo layered architecture và làm việc với JPA, MySQL và JWT. Frontend thể hiện việc xây dựng một SPA bằng Vue 3, quản lý state với Pinia và tách riêng tầng giao tiếp API.
Project phù hợp để thể hiện kinh nghiệm về Full-stack Development, Java/Spring Boot Backend, REST API, Relational Database, Vue.js và Learning Management Systems.
Tech Stack
Java · Spring Boot 3 · Spring Data JPA · JWT · MySQL · REST API · Vue 3 · Vite · Pinia · Vue Router · Axios · Tailwind CSS · VeeValidate · Yup · ApexCharts · PayPal SDK · Maven · Tomcat