Tháng 4, 2026 - Tháng 6, 2026 • Nền tảng Học tập Trực tuyến Full-Stack

Tổng quan
CourseHub là hệ thống LMS full-stack thiết kế theo kiến trúc module hóa phục vụ vị trí Backend Developer. Hệ thống triển khai giao diện phòng học chuẩn phong cách Udemy (split-screen: giáo trình thu gọn bên phải, phát video YouTube bài giảng bên trái), đồng bộ URL query params để điều hướng mượt mà, giỏ hàng lưu database và bảng điều khiển phân tích doanh thu chi tiết.
Kiến trúc Hệ thống
Mô hình MVC phân tầng nghiêm ngặt (Controller - Service - Model / Data Access). Middleware xác thực stateless JWT, phân quyền RBAC 3 cấp độ (Admin, Instructor, Student) và lớp xử lý lỗi tập trung. Triết lý thiết kế: Loại bỏ hoàn toàn Docker và ORM cồng kềnh (như Prisma) nhằm tối ưu cold-start tức thì.
Dữ liệu & Cơ sở dữ liệu
Cơ sở dữ liệu PostgreSQL (Supabase) chuẩn hóa quan hệ 3NF với hơn 15 bảng. Toàn bộ thao tác truy vấn được viết bằng Raw SQL tối ưu thông qua native 'pg' client kết hợp connection pool; sử dụng SQL Transactions (BEGIN...COMMIT/ROLLBACK) khi thanh toán và ghi danh khóa học.
Thách thức Kỹ thuật & Giải pháp cốt lõi
- 01
1. Quản lý trạng thái học tập Udemy & Đồng bộ URL Navigation:
Thiết kế giao diện Workspace chia đôi màn hình kết hợp URL Query Params (/my-courses?courseId=...&lessonId=...), cho phép học viên dùng nút Back/Forward của trình duyệt mà không làm mất trạng thái bài giảng.
- 02
2. Tối ưu hóa truy vấn Raw SQL thay vì dùng ORM:
Loại bỏ hoàn toàn ORM để tránh N+1 query và overhead kết nối; viết truy vấn SQL tổng hợp tính toán tức thì tỷ lệ % hoàn thành khóa học theo từng học viên trong một query duy nhất với độ trễ dưới 2ms.
- 03
3. Phân quyền RBAC đa cấp & Ngăn ngừa leo thang đặc quyền:
Thiết lập middleware xác thực JWT claims kết hợp kiểm tra quyền sở hữu tài nguyên (Resource Ownership Verification) trước khi thực hiện CRUD, bảo vệ toàn vẹn đề cương bài giảng của Instructor.