Dạy – học lý thuyết đạt chuẩn giám sát học từ xa: lớp/buổi học, điểm danh khuôn mặt, ngân hàng 600 câu (config), thi thử và kết quả xét điều kiện. Terminal khuôn mặt mua ngoài — chỉ viết tích hợp.
| Feature | BO chính | Action |
|---|---|---|
| class | Lớp / buổi học lý thuyết | viewcreateedit |
| attendance | Điểm danh khuôn mặt (log hợp lệ) | viewexportcheckin |
| question-bank | Ngân hàng 600 câu (config theo bộ đề) | viewimportconfigure |
| mock-exam | Thi thử + kết quả | viewcreatescore |
| result | Kết quả học lý thuyết (xét điều kiện) | viewapprovereport |
| BO | Trường chính |
|---|---|
| Lớp/buổi học | Khóa · môn (ref catalog) · GV · phòng · lịch · hình thức (tập trung / từ xa) |
| Điểm danh | Buổi × học viên · phương thức (khuôn mặt/RFID) · ảnh chụp · thời điểm vào/ra — log sinh dữ liệu hợp lệ theo chuẩn giám sát |
| Ngân hàng câu hỏi | 600 câu theo bộ đề hiện hành · chương/mục · câu điểm liệt · phiên bản bộ đề (đổi đề = cập nhật config) |
| Kết quả | Học viên × môn · số giờ đã học · điểm thi thử · trạng thái đạt/chưa đạt |
Khối permissions[] dán vào manifest.json; bảng dưới là gán quyền theo vai trò (seed rt_role). Permission key đầy đủ: lms.main.<feature>.<action>.
⚠️ Action đặc thù (checkin, score) cần bổ sung vào validator manifest — xem plan data-scope P1.
| Feature | QTHT | GIAM_DOC | QL_DAO_TAO | GIAO_VU | GIAO_VIEN | HOC_VIEN |
|---|---|---|---|---|---|---|
| class | R | R | W | W | R¹ | — |
| attendance | R | R | R | R | R¹ | — |
| question-bank | R | R | W | — | — | — |
| mock-exam | R | R | R | W | — | R² |
| result | R | R | RA | R | — | R² |
R xem · W tạo/sửa · A duyệt · — không có quyền · ¹ dữ liệu phân công · ² của chính mình · ³ theo trạng thái hồ sơ. Vai trò không liệt kê = không có quyền.
Đặc thù: attendance +checkin (GIAO_VIEN, HOC_VIEN) · mock-exam score = hệ thống chấm tự động
(a) Manifest bổ sung fields + scopeVars cho feature bị scope (mở rộng schema — plan data-scope P1; manifest chỉ khai "cái gì scope được", không chứa rule):
(b) Điều kiện record theo vai trò:
| Vai trò | Feature (action) | Điều kiện record |
|---|---|---|
| GIAO_VIEN | class, attendance (view) | giao_vien_id = ctx.current_giao_vien_id (lớp mình dạy) |
| HOC_VIEN | mock-exam, result (view) | nguoi_lxid = ctx.current_nguoi_lxid |
(c) Seed rt_role.grants (kind rule — nhiều rule cùng resource+action = OR):
Biến ngữ cảnh: current_user_id — engine có sẵn · current_giao_vien_id/current_ma_gv — module teacher tra từ user đăng nhập (ctxVars, plan P3) · current_nguoi_lxid/current_ma_dk_list — module student tra (1 người nhiều lượt đăng ký) · current_assigned_* — danh sách phụ trách/được phân công.