AI-CLO PTITHCM — TIẾN TRÌNH DỰ ÁN 05/09/2026

Checkpoint sau chuỗi nâng cấp Assessment V12.3.x. Tài liệu này ghi lại trạng thái mã nguồn, kiến trúc, chức năng đã hoàn thành, việc cần làm trên Supabase và các nguyên tắc tiếp tục phát triển.

1. Checkpoint hiện tại

2. Kiến trúc Assessment hiện tại

Assessment frontend giữ đúng 7 file owner-domain:

js/
├─ assessment.js
└─ assessment/
   ├─ common.js
   ├─ online-lifecycle.js
   ├─ online-builder.js
   ├─ final-exam.js
   ├─ student-attempt.js
   └─ results.js

Các nguyên tắc đã chốt:

3. Các nâng cấp Assessment đã hoàn thành

V12.3.1 — Review + AI + lifecycle

V12.3.2 — Builder tools

Online Builder đã có:

V12.3.3 — Thiết kế lại Cấu trúc/ma trận

V12.3.4 — Danh sách bài làm + Excel kết quả

Danh sách bài làm có:

Nút Tải kết quả Excel có 3 chế độ:

Excel dùng ExcelJS, định dạng:

V12.3.5 — Xuất đề / Tạo mã đề

Đã có subpage riêng Xuất đề / Tạo mã đề từ trang Chi tiết bài kiểm tra.

Chức năng:

Xuất file:

Excel đáp án có sheet canonical:

Câu | 101 | CLO | 102 | CLO | 103 | CLO | ...

và thêm:

Ban_in hỗ trợ bố cục 1 / 2 / 4 khối để tiết kiệm giấy.

4. Persistence / giữ màn hình — kiến trúc đã chốt

Chỉ giữ đúng 2 file persistence dùng chung cho toàn web:

js/ui/subpage-state.js
js/ui/form-persistence.js

Không tạo thêm persistence file mới trong tương lai nếu không thật sự bắt buộc.

subpage-state.js

Trách nhiệm:

V12.3.6 đã tối ưu:

form-persistence.js

Trách nhiệm:

V12.3.6 đã tối ưu:

Nguyên tắc persistence từ nay

5. Sinh viên làm bài — cơ chế hiện tại

student-attempt.js hiện dùng:

Lưu ý kỹ thuật còn cần hoàn thiện sau:

6. Supabase — việc người dùng cần làm

Hai thao tác backend gần nhất phát sinh từ V12.3.1:

  1. Chạy:
supabase/migrations/assessment-v12.3.1-review-ai.sql
  1. Redeploy:
supabase/functions/analyze-assessment/index.ts

Nếu hai việc này đã làm rồi thì hiện tại không cần thao tác Supabase nào thêm cho V12.3.2 → V12.3.6.

7. Backup quan trọng

Các checkpoint gần nhất:

8. Trạng thái 10 issue Assessment ban đầu

9. Việc nên làm tiếp

Ưu tiên tiếp theo:

  1. Hoàn thiện #2: đưa màn hình làm bài sang full-width subpage thay vì side drawer.
  2. Đăng ký chính thức Online Builder / Attempt / Result / Export Center với persistence chung để reload/discard cũng restore tối đa đúng chỗ.
  3. Lưu thêm currentQuestionIndex cho attempt để SV mở lại đúng câu đang làm.
  4. Live-smoke các luồng cần xác thực Supabase/RLS:
    • tạo bài;
    • chỉnh bài;
    • Gemini accept;
    • sinh viên làm/nộp;
    • xem lại bài theo 2 quyền;
    • AI nhận xét;
    • Excel kết quả;
    • Excel đáp án+CLO;
    • ZIP/TeX export.
  5. Thử thực tế file Excel đáp án với /cham-thi-clo.
  6. Compile thử TeX bằng dữ liệu thật có công thức phức tạp.

10. Nguyên tắc phát triển tiếp tục


Checkpoint này dùng làm mốc tiếp tục phát triển sau ngày 05/09/2026.