Thuật ngữ tra nhanh
Trang này giúp tra nhanh khi gặp câu hỏi “từ này nghĩa là gì trong LMS?”. Mỗi dòng gồm nghĩa ngắn, nơi xuất hiện và file/trang nên mở.
Kiến trúc và backend
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| Clean Architecture |
Cách chia code để domain/application không phụ thuộc framework/infrastructure. |
Backend |
| DDD |
Domain-Driven Design: chia hệ thống theo domain như identity, course authoring, learning delivery, assessment. |
Kiến trúc |
| Domain model |
Object nghiệp vụ thuần, không gắn @Entity. |
Backend |
| JPA entity |
Object persistence trong infrastructure, dùng với Spring Data JPA. |
Source map |
| Repository port |
Interface ở domain/application mô tả cách đọc/ghi dữ liệu theo ngôn ngữ nghiệp vụ. |
Backend |
| Repository adapter |
Implementation ở infrastructure, map domain model sang JPA entity. |
Backend |
| Use case |
Lớp application xử lý một hành động nghiệp vụ cụ thể. |
Vị trí file code |
| Flyway migration |
File SQL versioned trong backend/src/main/resources/db/migration, quản lý schema DB. |
Database |
| Materialized view |
View PostgreSQL lưu kết quả tổng hợp, cần refresh khi dữ liệu nguồn thay đổi. |
SQL schema catalog |
Frontend và trải nghiệm học
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| Angular Signals |
Cơ chế state/reactivity hiện đại của Angular, dùng signal, computed, input, output. |
Frontend |
| Course editor |
Màn teacher tạo/sửa course, chapter, lesson, content block, upload. |
Vị trí file code |
| Route guard |
Guard frontend kiểm tra role/login trước khi vào route. |
Roles |
| PWA |
Progressive Web App: app shell/cache/offline bằng service worker. |
Video và offline |
| IndexedDB/Dexie |
Local database trên browser để lưu dữ liệu học/offline/progress queue. |
Video và offline |
| Offline sync |
Cơ chế queue dữ liệu khi mất mạng và gửi lại khi online. |
Troubleshooting |
Course, publication và học tập
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| Draft course |
Bản teacher đang sửa trong courses, chapters, lessons. |
Luồng nghiệp vụ |
| Publication snapshot |
Bản learner được xem sau khi duyệt, lưu ở course_publications. |
Publication |
| Submit for approval |
Teacher gửi course lên admin/ORG_ADMIN duyệt. |
Luồng nghiệp vụ |
| Approve |
Admin/ORG_ADMIN duyệt course và tạo hoặc cập nhật publication. |
Publication |
| Enrollment |
Ghi danh student vào course/class, liên quan bảng enrollments. |
Luồng nghiệp vụ |
student_lesson_progress |
Bảng lưu tiến độ granular theo lesson. |
SQL schema catalog |
content_blocks |
Cột JSONB trong lessons và questions, không phải bảng riêng. |
Database |
Assessment
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| Question bank |
Ngân hàng câu hỏi dùng lại, gồm packages, questions, question_bank_categories. |
Assessment |
| Quiz attempt |
Một lần student làm quiz, lưu ở quiz_attempts. |
Luồng nghiệp vụ |
| Assignment submission |
Bài nộp của student, lưu ở assignment_submissions. |
Assessment |
| Rubric |
Thang/chỉ tiêu chấm điểm assignment. |
Assessment |
| Grading audit |
Log truy vết thay đổi chấm điểm, bảng grading_audit_log. |
SQL schema catalog |
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| R2 |
Object storage tương thích S3, dùng lưu file/video. |
Runtime |
| Presigned upload |
Backend cấp URL tạm để frontend upload thẳng lên storage. |
Luồng nghiệp vụ |
| Video asset |
Bản ghi metadata video trong video_assets. |
SQL schema catalog |
| Video ingest job |
Job xử lý video trong video_ingest_jobs, chạy qua worker. |
Video và offline |
| Shaka Player |
Player frontend phát HLS/DASH và adaptive streaming. |
Video và offline |
| ABR |
Adaptive bitrate: tự chọn chất lượng video theo mạng/thiết bị. |
Câu hỏi bảo vệ |
| CDN/edge |
Lớp phân phối/chặn traffic ở gần người dùng, cần khi scale traffic lớn hoặc chống DDoS. |
Runtime |
Payment và doanh thu
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| VNPay IPN |
Callback server-to-server từ VNPay để xác nhận thanh toán. |
Payment |
| SePay webhook |
Webhook xác nhận giao dịch từ SePay. |
Payment |
payment_transactions |
Bảng giao dịch thanh toán chính. |
SQL schema catalog |
| Revenue split |
Chia doanh thu giữa platform/teacher/org. |
Payment |
| Payout request |
Yêu cầu rút/chuyển tiền cho teacher. |
Payment |
Wiii và AI
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| Wiii iframe/embed |
Vùng LMS host nhúng Wiii trong teacher/course editor. |
Wiii |
| Pointy |
Cơ chế Wiii quan sát DOM và đề xuất/click target an toàn. |
Wiii |
data-wiii-id |
Metadata DOM ổn định để Wiii nhận diện target. |
Wiii |
data-wiii-click-safe |
Chỉ đánh dấu true cho action điều hướng an toàn. |
Wiii |
| Preview/diff |
Màn xem thay đổi do AI sinh trước khi apply vào LMS. |
Luồng nghiệp vụ |
| Dangerous mutation |
Publish, delete, grade, payment, enroll, submit quiz; Wiii không được tự làm. |
Câu hỏi bảo vệ |
Debug và sửa code
| Thuật ngữ |
Nghĩa trong dự án |
Mở thêm |
| “Đổi màu” |
Sửa SCSS/design token/component template. |
Vị trí file code |
| “Đổi logic” |
Sửa component/service/store hoặc controller/use case/repository. |
Vị trí file code |
| “Thêm API” |
Thêm DTO/use case/controller, frontend endpoint/service, và test nếu rủi ro. |
Vị trí file code |
| DBeaver ERD |
Sơ đồ database tổng để trình bày bảng/quan hệ. |
Database |
| Port 4010 |
Port ngoài đang dùng cho site docs Just the Docs. |
Chạy local |
| Port 4200 |
Port frontend Angular local. |
Chạy local |
| Port 8088 |
Port backend API local; cần kiểm docker ps nếu bị container khác chiếm. |
Chạy local |