Appearance
Ghi chú học viên (Student Notes)
StudentNote là timeline ghi chú nội bộ gắn với từng học viên — phục vụ team đào tạo theo dõi học viên đặc biệt qua nhiều lớp, nhiều cohort. Khác với nhật ký lớp (gắn với Batch), Student Note đi theo học viên xuyên suốt.
Một dòng tóm tắt
Trong hồ sơ học viên → tab Ghi chú → tạo note với category (academic/behavioral/counseling/general). Cửa sổ sửa 24h cho author (audit trail). Học viên không xem được note — kênh nội bộ team đào tạo.
Khi nào dùng?
- Học viên đặc biệt cần chú ý (xuyên cohort) — ghi chú tích luỹ.
- Tư vấn — counsellor ghi chú buổi tư vấn riêng.
- Hành vi (behavioral) — ghi nhận vi phạm hoặc tích cực vượt trội.
- Học thuật (academic) — ghi nhận điểm yếu / mạnh chuyên môn để Trainer mới đọc nhanh khi nhận lớp.
- Bàn giao — Trainer cũ cohort xong, viết note tổng kết để Mentor mới đọc.
Khác Batch Log
- Batch Log (nhật ký lớp) gắn với 1 Batch. Khi cohort kết thúc, log lưu trong context lớp đó. Học viên di chuyển → log cũ không theo.
- Student Note gắn với Student. Học viên transfer giữa nhiều cohort → tất cả note đi theo. Trainer mới mở hồ sơ → thấy ngay lịch sử.
Vào Student Notes
Sidebar → Đào tạo → Học viên → tìm học viên → Xem → tab Ghi chú.
Bảng list hiển thị:
| Cột | Mô tả |
|---|---|
| Phân loại | Badge category (academic/behavioral/counseling/general) |
| Nội dung | Snippet đầu của note |
| Người ghi | Author (User) |
| Thời điểm | logged_at |
Sort theo logged_at desc — note mới nhất đầu.
Tạo note mới
Modal tạo:
| Trường | Mô tả |
|---|---|
Phân loại (category) | Chọn: Học thuật / Hạnh kiểm / Tư vấn / Chung |
Nội dung (body) | Rich text (Tiptap) — bold, italic, list, link |
Click Lưu → note xuất hiện đầu danh sách.
4 categories khi nào dùng?
| Category | Use case |
|---|---|
| Học thuật (academic) | Điểm yếu chuyên môn, đề xuất ôn thêm, nhận xét bài tập đặc biệt |
| Hạnh kiểm (behavioral) | Vi phạm nội quy, tích cực vượt trội, conduct issues |
| Tư vấn (counseling) | Buổi tư vấn 1-1, vấn đề cá nhân ảnh hưởng học |
| Chung (general) | Mọi thứ khác — note hành chính, bàn giao |
Chọn category để filter sau này dễ — vd: counsellor mở "Tư vấn" để thấy session history.
HTML sanitize
Body được sanitize qua Symfony HtmlSanitizer với allowSafeElements + http/https/mailto schemes — chống XSS. Strip:
<script>tagson*attributes (onclick, onerror,...)javascript:URL schemes
Bạn thoải mái paste HTML từ ngoài — mã độc bị bóc.
Cửa sổ sửa 24 giờ
Tương tự Batch Log:
- Author + 24 giờ — cho phép sửa / xoá.
- Sau 24h — read-only với mọi người (trừ
super_admin). - Bảng note có badge "Còn sửa được" trong cửa sổ.
Lý do thiết kế
- Audit trail — note là tài liệu giảng dạy, không nên rewrite quá khứ.
- Tránh lạm dụng — không thể "phi tang" nhận xét cũ.
- Cho phép sửa lỗi đánh máy — 24h đủ.
Phân quyền
| Role | View | Create | Update | Delete |
|---|---|---|---|---|
super_admin | ✅ all | ✅ | ✅ (bypass 24h) | ✅ (bypass 24h) |
training_manager | ✅ all | ✅ | ✅ (own + 24h) | ✅ (own + 24h) |
trainer | ✅ all | ✅ | ✅ (own + 24h) | ✅ (own + 24h) |
| Học viên | ❌ | ❌ | ❌ | ❌ |
Học viên KHÔNG xem được
Hệ thống không expose Student Note ở Learnspace. Học viên không có UI nào mở được. Thoải mái ghi nội bộ — nhưng vẫn nên giữ chuyên nghiệp (admin có thể đọc).
Training Manager + Trainer mặc định có toàn quyền (đọc / tạo / sửa / xoá theo giới hạn 24h).
Categories và filter
Bảng list note hỗ trợ filter category — chọn dropdown để xem chỉ 1 loại.
Quick view
- Mở "Tư vấn" trước buổi 1-1 với học viên → đọc các session trước, không phải hỏi lại.
- Mở "Học thuật" khi nhận lớp mới → biết học viên cần kèm thêm môn gì.
- Mở "Hạnh kiểm" khi xử lý vi phạm → biết lịch sử có chưa.
Workflow điển hình
Tư vấn 1-1 (counsellor)
- Counsellor có buổi tư vấn với học viên → vào hồ sơ Student → tab Ghi chú.
- Tạo note category Tư vấn với nội dung:
"Buổi 30/04/2026 — Học viên báo lo lắng về kỳ thi cuối kỳ. Đã trao đổi: thời gian biểu, kỹ thuật ôn tập, hỗ trợ từ Trainer. Follow-up tuần sau."
- Lưu.
- Tuần sau, mở lại → đọc note + tạo note tiếp với nội dung "Follow-up: Đã ổn, kỳ thi điểm 85."
→ Lịch sử tư vấn rõ ràng.
Bàn giao Trainer
- Trainer cohort cũ kết thúc → vào hồ sơ học viên gặp khó khăn → tạo note Học thuật:
"Học viên A — Cohort 2026-Q1. Mạnh: thuyết trình, làm việc nhóm. Yếu: SQL nâng cao, OOP design. Khuyến nghị Trainer mới: kèm thêm sql tutorial + pair programming OOP."
- Học viên transfer / enroll cohort mới → Trainer mới mở hồ sơ → đọc note → biết ngay điểm cần focus.
Behavioral incident
- Học viên vi phạm trong buổi học → Trainer ghi vào Batch Log (context lớp).
- Đồng thời ghi vào StudentNote category Hạnh kiểm — để Trainer khác (lớp khác) cũng biết:
"Vi phạm 02/05 — đến muộn quá 30 phút 3 buổi liên tiếp. Đã trao đổi. Theo dõi tiếp."
→ Note follow Student qua các cohort.
Hỗ trợ học viên đặc biệt
- Học viên có nhu cầu trợ năng (kéo dài thời gian thi, đọc to câu hỏi) → counsellor / Tenant Admin tạo note Tư vấn:
"Cần trợ năng: kéo dài thời gian thi 50%. Approved bởi BGH 15/03/2026."
- Mỗi kỳ thi, người tổ chức exam mở hồ sơ → biết để cấu hình ExamSchedule riêng.
Quan hệ với các tính năng khác
Với Batch Log
Hai kênh bổ sung nhau:
| Batch Log | Student Note | |
|---|---|---|
| Phạm vi | 1 Batch | 1 Student |
| Theo dõi | Tình hình lớp | Tình hình cá nhân |
| Cohort kết thúc | Lưu trong context Batch | Theo Student qua cohort |
| @mention | Trainer + học viên trong batch | Hiện chưa support |
| Edit window | 24h | 24h |
| Học viên xem | ❌ | ❌ |
| Search | Theo nội dung + author + date | Theo category |
Sử dụng cả hai khi có incident cá nhân trong context lớp.
Với Notifications
Hiện không tự động email khi tạo note (tránh spam). Nếu cần Trainer khác chú ý, dùng kênh ngoài (Slack, batch log @mention).
Với Audit Log
Mỗi tạo / sửa / xoá note được log nếu module audit bật. Tenant Admin truy cập audit log để xem ai sửa gì.
Với GDPR / Privacy
Student Note chứa thông tin cá nhân học viên. Khi học viên yêu cầu data deletion (GDPR Art. 17):
- Note tạo theo họ thuộc data của Student → cần xoá / anonymize.
- Liên hệ Tenant Admin xử lý.
Câu hỏi thường gặp
Học viên báo "có người ghi chú xấu về tôi" — họ thấy ở đâu? Không thấy ở đâu trong app. Nếu thật biết, có thể họ đăng nhập tài khoản admin/trainer trộm. Báo Tenant Admin rà bảo mật.
Tôi viết nhầm category — sửa được không? Trong cửa sổ 24h → sửa được. Sau 24h → tạo note mới với category đúng + ghi chú "Note trước nhầm category" để clear.
Search note theo nội dung được không? Hiện UI chưa có ô search. Filter theo category. Đề xuất search nếu nhu cầu.
Note có thể đính kèm file không? Hiện chưa. Workaround: paste link Drive / S3 / external trong body.
Bulk note (cùng nội dung cho 30 học viên)? Hiện không có UI. Nếu thường xuyên, đề xuất Tenant Admin tạo tool.
Note có theo soft-delete student? Tuỳ migration — thường cascade soft delete. Restore student → note trở lại.
Note có hiển thị trong Trainer Panel? Trainer có quyền nhưng UI Trainer Panel hiện chưa expose StudentResource. Trainer xem note qua Tenant Admin Panel (nếu được Tenant Admin gán quyền vào panel).
Mention học viên / trainer khác trong note? Hiện chưa support — chỉ Batch Log có. Đề xuất tính năng nếu cần.
Export tất cả note của 1 student? Hiện chưa có UI export. DB query qua Central Admin nếu cần.
Note có audit log riêng (ai đọc note)? Mặc định không log read action (overhead). Chỉ log create/update/delete. Đề xuất Tenant Admin bật verbose audit nếu compliance yêu cầu.