Skip to content

Hiểu các thực thể & mối quan hệ ​

Là trainer, bạn làm việc với rất nhiều khái niệm: lớp, khoá, học viên, năng lực, lộ trình. Trang này giúp bạn hiểu chính xác từng thứ là gì và chúng kết nối với nhau ra sao, để khi xem báo cáo hoặc nói chuyện với Training Manager / Course Manager, mọi người đang nói về cùng một thứ.

Vì sao trainer nên đọc trang này?

  • Học viên hỏi "Sao em đăng ký Program rồi mà chưa thấy khoá học?" — bạn cần biết Program và Course liên kết qua Batch như thế nào.
  • Bạn xem Bản đồ năng lực và muốn hiểu vì sao một khoá học lại hiện ra ở năng lực này.
  • Bạn dùng Kế hoạch bắt kịp dựa trên Lộ trình học tập — cần biết Roadmap là gì, ai sở hữu, gắn vào đâu.
  • Bạn báo cáo "10 học viên tại lớp" — phải phân biệt rõ "học viên đang active trong lớp" với "Student record có status active của trường".

6 khái niệm bạn sẽ gặp hằng ngày ​

Khái niệmMột câuAi tạo?
Course (Khoá học)Đơn vị nội dung học — gồm modules, lessons, hoạt động, bài tập.Course Manager
Program (Chương trình)Bộ nhiều khoá học có thứ tự, định hình một con đường đào tạo.Tenant Admin / Training Manager
Batch (Lớp đào tạo)Lớp thực thi một Program trong khoảng thời gian cụ thể — đây là không gian làm việc chính của bạn.Training Manager
Student (Hồ sơ học viên)Hồ sơ "đã nhập học" của một người trong trường — có mã, ngày nhập học, trạng thái lifecycle.Tự tạo khi attach User vào Batch lần đầu
Competency Framework (Khung năng lực)Cây năng lực 4 tầng + các mức thành thạo — chuẩn đầu ra của trường/Program.Tenant Admin / Course Manager
Learning Roadmap (Lộ trình học)Lộ trình cá nhân hoá hướng tới các năng lực mục tiêu — có template (chung) và personal (của từng học viên).Course Manager (template), tự sinh hoặc học viên tự lập (personal)

Bản đồ quan hệ — góc nhìn của bạn ​

                  Competency Framework
                          ▲
                          │ (chuẩn năng lực)
                          │
   Program ─── gồm ───▶ Course  ◀── học bởi ── Student
      ▲                  ▲                       │
      │ thực thi qua     │                       │ là User
      │                  │ ghi danh              │ có hồ sơ
      ▼                  │                       │
    Batch ──── gồm ─────┤                       │
   (LỚP CỦA BẠN)        │                       │
      │                  │                       │
      │ phân học viên    │                       │
      └──────────────────┴───────────────────────┘
              hành trình học của học viên
              được mô tả bằng Roadmap (lộ trình)

Hai dòng đáng nhớ:

  1. Batch là điểm hội tụ. Trong lớp của bạn có: một Program → một danh sách Course → một danh sách Học viên → trainer (chính bạn).
  2. Student có hồ sơ riêng với trường, nhưng mọi hành vi học tập (làm bài, đăng ký khoá, lộ trình) đều gắn với User chứ không gắn với Student record. Khi bạn xem tiến độ học, bạn đang nhìn dữ liệu của User.

Diễn giải từng thực thể ​

1. Course — đơn vị nội dung ​

Course là khoá học cụ thể: "JavaScript cơ bản", "Tư duy thuật toán", "OOP Java". Bạn không sửa nội dung Course (do course_manager soạn), nhưng có thể:

Course tồn tại độc lập với Batch và Program

Một học viên có thể học Course mà không cần Program/Batch (vd: marketplace tự đăng ký). Khi đó, bạn — trainer — sẽ không thấy họ trong panel vì panel chỉ hiện học viên thuộc Batch bạn phụ trách. Đó là điều bình thường.

2. Program — bộ khoá có thứ tự ​

Program là chương trình đào tạo của trường: "Lập trình viên Fullstack 6 tháng", "AI Engineer Bootcamp". Một Program gồm nhiều Course với thứ tự cố định.

Bạn không tạo Program. Khi Training Manager mở một cohort mới của Program, họ sẽ tạo một Batch ứng với cohort đó và gán bạn vào.

  • Ý nghĩa với trainer: Program quyết định "lớp của tôi sẽ học những Course nào" và "theo thứ tự nào". Khi học viên hỏi "Sao em chưa thấy Khoá Y?", thường là vì Khoá Y đứng sau Khoá X trong Program, chưa tới lượt.

3. Batch — không gian làm việc của bạn ​

Batch là một lớp đang chạy. Mỗi Batch có:

  • Một Program (cố định, không đổi sau khi tạo).
  • Khoảng thời gian (start_date → end_date).
  • Danh sách trainer với vai trò (Lead / Assistant / Mentor) — xem Phối hợp đội ngũ giảng viên.
  • Danh sách học viên (qua BatchUser pivot, có trạng thái: active / suspended / transferred_out / dropped / completed).
  • Buổi học (sessions) — xem Buổi học & Điểm danh.
  • Một lộ trình mặc định (template) — sẽ áp dụng cho học viên chưa có roadmap riêng.

Mọi quyền hạn của bạn đều "neo" vào Batch

Bạn chỉ thấy học viên/khoá/báo cáo của Batch bạn được gán. Nếu bạn cũng dạy một lớp khác, mỗi panel data sẽ độc lập — chuyển Batch bằng dropdown ở top filter, không phải lọc thủ công.

4. Student — khác với User, khác với role student ​

Đây là chỗ dễ nhầm nhất. Cần phân biệt 3 thứ tách biệt:

Là gìVí dụ
UserTài khoản đăng nhậpnguyenvana@gmail.com
Role studentQuyền hạn của tài khoản đó (Spatie)Cho phép vào Learnspace, làm bài
Student recordHồ sơ "đã nhập học" của trường — có mã, ngày nhập, trạng thái lifecycleSV2026-0042, nhập học 2026-03-01, status Active

Một học viên thực tế = một User + (thường) role student + một Student record của tenant.

  • Khi Training Manager attach User vào Batch lần đầu, hệ thống tự sinh Student record với mã và status active. Bạn không phải làm gì.
  • Trạng thái Student (Active / Graduated / Withdrawn) độc lập với trạng thái trong Batch (active / dropped / completed). Một Student Active có thể đang dropped ở Batch hiện tại — họ vẫn là học viên của trường, chỉ rời lớp này thôi.
  • Mọi tiến độ học, điểm, roadmap đều gắn vào User, không vào Student record. Vì vậy khi học viên chuyển lớp, tiến độ trong các khoá đã học được giữ nguyên (xem Cá nhân hoá học tập).

5. Competency Framework — chuẩn năng lực ​

Framework là cây năng lực 4 tầng:

Framework (vd: "Năng lực lập trình viên")
└── Level 1 (Năng lực gốc, vd: "Tư duy lập trình")
    └── Level 2 (vd: "Kiểm soát luồng")
        └── Level 3 (vd: "Vòng lặp")
            └── Level 4 (vd: "Vòng lặp lồng nhau") ◀── đơn vị nhỏ nhất

Mỗi Level 4 (leaf) là một đơn vị năng lực cụ thể. Khoá học gắn vào Level 4 ⇒ ai làm xong khoá đó được tích luỹ năng lực tương ứng.

  • Trainer không tạo framework. Bạn dùng nó để đọc Bản đồ năng lực lớp (xem Cá nhân hoá → Bản đồ năng lực) — biết lớp đang yếu năng lực nào, ai yếu.
  • Mỗi Program có thể gắn 1 Framework để làm chuẩn đầu ra; nếu không gắn, lớp vẫn chạy bình thường, chỉ không có heatmap năng lực.

6. Learning Roadmap — lộ trình cá nhân ​

Roadmap là lộ trình học tập hướng tới một số năng lực mục tiêu. Có 2 loại:

LoạiAi sở hữuDùng để làm gì
Template (lộ trình mẫu)Trường (không gắn User)Khuôn mẫu chung — Course Manager soạn sẵn
Personal (lộ trình cá nhân)Gắn user_idLộ trình của một học viên cụ thể — sinh từ template + tuỳ biến

Mỗi Batch có thể đặt một roadmap template mặc định (xem cấu hình ở tab Thông tin của lớp). Khi học viên vào lớp, nếu chưa có roadmap personal nào, hệ thống dùng template đó làm gợi ý lộ trình.

  • Trainer dùng roadmap khi mở Kế hoạch bắt kịp cho học viên chậm — kế hoạch dựa trên roadmap để ưu tiên khoá học còn thiếu.
  • Roadmap gắn vào User, không phải Student record. Vì vậy khi học viên chuyển lớp, roadmap cá nhân đi theo họ.

Các nhầm lẫn thường gặp ​

"Em đã enroll Program rồi sao chưa thấy Course?"

Học viên không enroll trực tiếp vào Program. Họ được attach vào Batch (lớp đào tạo của Program), và từ Batch, hệ thống tự ghi danh họ vào các Course thuộc Program đó. Nếu họ "đăng ký Program" mà chưa thấy gì, khả năng cao Training Manager chưa attach họ vào Batch nào. Báo Training Manager.

"Tôi xoá Student record có xoá tài khoản User không?"

Không. Student và User là 2 entity tách biệt. Xoá Student chỉ huỷ "tư cách học viên của trường" — User vẫn đăng nhập được, vẫn giữ tiến độ học cũ. Tương tự, vô hiệu hoá User không tự động đổi Student record về Withdrawn.

"Học viên chuyển lớp có mất tiến độ không?"

Không. Tiến độ học gắn cặp (user_id, course_id). Chuyển lớp = đóng BatchUser cũ + mở BatchUser mới, các Enrollment trong Course chung vẫn giữ nguyên dữ liệu. Họ chỉ "đứng ở lớp khác" thôi.

"Lớp tôi có 2 đường để gặp 'Student': trong tab Học viên, và trong sự kiện Chuyển lớp. Có gì khác?"

  • Tab Học viên của Batch: hệ thống liệt kê các học viên đang ở trong lớp này (qua BatchUser status active).
  • Lịch sử chuyển lớp (BatchTransfer): log các lần học viên chuyển vào/ra Batch này — không phải danh sách hiện tại. Cả hai đều là cùng một Student/User, chỉ là cắt lát dữ liệu theo cách khác.

Bước tiếp theo ​

TrangLiên quan tới khái niệm
Quản lý học viên trong lớpStudent × Batch (tab Học viên của lớp)
Tiến độ khoá họcCourse × User × Enrollment
Cá nhân hoá học tậpCompetency Framework + Roadmap + Course
Buổi học & Điểm danhBatch × Session × User
Phối hợp đội ngũ giảng viênBatch × Trainer (Lead/Assistant/Mentor)

LMS Documentation