APMATHS — Chốt phiên và checklist lần làm tiếp theo
Cập nhật: 13/10/2026 (giờ Việt Nam). Trạng thái sau khi merge PR #4.
Phiên này chỉ ghi lại tiến độ. Không tiếp tục thay code, database, DNS, Auth hoặc Cloudflare. Không tự động phát hành các tính năng trả phí hay chuyển hướng website cũ.
1. Kết quả đã hoàn thành
Repository và tên miền
- Repository:
APMatHS/apmaths.io.vn. - PR #4 đã merge thành công vào
main(squash). Merge commit:e1f337b7ceddc914222b70936d34732742953e7d. - Hai workflow Jekyll build và JavaScript + Guest + kiểm thử liên kết AI-CLO đã PASS đối với HEAD của PR trước merge.
_config.ymltrênmaincóurl: https://apmaths.io.vn; các file mới (/platform/,/platform/exams/,/practice/try/,/courses/apmaths/) đã có trongmain.- Người quản trị đã xác nhận kết nối tên miền
apmaths.io.vnvới Cloudflare Pages. - Chưa có xác nhận độc lập deployment
mainmới trên Cloudflare Pages đã hoàn thành, SSL/canonical/sitemap và toàn bộ trang con đang trả HTTP 200. Không coi việc merge GitHub là nghiệm thu web production.
Supabase 1 — lớp và khóa học của APMATHS
- Project:
yhfburffwzvcayjadskr, Auth riêng. - Dữ liệu kiểm tra gần nhất: 2 môn hiện có,
Đại số tuyến tính_UTC2_S4vàToán cơ sở_HK261;subject_memberscó 1 bản ghi giảng viên. Hai môn và thành viên không bị viết lại khi triển khai schema liên kết. - Hai migration
supabase-personal/migrations/*đã áp dụng:- Các bảng thương mại
personal_courses,personal_course_offers,personal_course_enrollments,personal_course_orders. personal_courses.subject_idtham chiếu đến môn AI-CLO đã tồn tại; khóa không gắn môn không được công bố; một môn chỉ có một trang khóa học; không đổi môn đã published/có ghi danh.
- Các bảng thương mại
- Trong AI-CLO, nhãn Khóa học của tôi chỉ xuất hiện cho sinh viên; Admin/giảng viên vẫn có Môn học. Logic
state.subjects, quyềnsubject_members, ngân hàng câu hỏi, bài thi và điểm vẫn theo AI-CLO hiện hành. /courses/apmaths/chỉ giới thiệu, tạo nội dung/gói nháp và liên kết môn. Không tự cấp quyền lớp sau khi chọn/mua gói; thanh toán chưa được tích hợp.- Kết quả kiểm thử SQL transaction/rollback liên kết môn: PASS; bản ghi thử không lưu lại.
Supabase 2 — giáo viên bên ngoài
- Project:
mhgsvxsjrzaeafvifydu, Auth độc lập Supabase 1. - Tài khoản
[email protected]đã xác minh email và được cấpplatform_adminở Supabase 2, không đồng nghĩa quyền Admin tại Supabase 1. - Có 8 migration
supabase/migrations/*: giáo viên đăng ký/xét duyệt, workspace, lớp và mã mời, ngân hàng câu hỏi, bài thi có chấm phía server, góifree, các bảng chuẩn bị phân quyền gói. teacher_prochưa giá bán/chưa mở; chưa có webhook/cổng thanh toán.- Các thử nghiệm SQL về quyền giáo viên A/B, hạn chế đáp án, chấm điểm và hết giờ đã PASS; chưa thay thế cho kiểm thử trình duyệt thật.
Cổng Guest và định hướng sản phẩm
/practice/try/: 24 câu hỏi Đại số tuyến tính mẫu, không yêu cầu đăng nhập, chấm trên trình duyệt, không dùng ngân hàng câu hỏi bảo mật.- Định hướng khi so sánh với Gnomio/Moodle: không sao chép toàn bộ LMS. Sau khi ổn định, ưu tiên bổ sung Bài học – Tài liệu – Tiến độ học – Sổ điểm vào AI-CLO, giữ thế mạnh riêng của CLO và công cụ Toán.
- Chưa có Cloudinary/media hoặc thanh toán thật.
2. Checklist ưu tiên cho lần làm tiếp theo
A. Nghiệm thu Cloudflare Pages và tên miền — làm đầu tiên
- Cloudflare Dashboard → Workers & Pages → project
apmaths-io-vn→ Deployments: xác nhận deployment Production của commit merge hoặc commitmainmới nhất đã Success. - Cloudflare Custom domains: xác nhận
apmaths.io.vnActive; kiểm tra HTTPS/chứng chỉ trên trình duyệt. - Truy cập thủ công trên điện thoại và máy tính:
https://apmaths.io.vn/,/practice/try/,/platform/,/platform/exams/,/courses/apmaths/,/ai-clo/app.html. - Kiểm tra console 404/JS/CSS, Jekyll metadata
/robots.txt,/sitemap.xml, canonical, điều hướng mobile. - Không sửa DNS/redirect khi chưa xác định rõ vấn đề. Đặc biệt giữ nguyên
apmaths.github.io/ai-clo/vàapmaths.github.io/tools/cùng mọi đường dẫn con.
B. Kiểm thử AI-CLO hiện có — tuyệt đối không phá môn
- Đăng nhập bằng tài khoản AI-CLO ở Supabase 1; xem danh sách hai môn có đúng và vào được trang từng môn.
- Kiểm tra màn hình Admin/giảng viên vẫn hiện Môn học, sinh viên thấy Khóa học của tôi; mở môn không mất chương/CLO/ngân hàng/câu hỏi/bài kiểm tra/điểm.
- Đối chiếu số bản ghi
subjects,subject_membersvà ID của hai môn với số liệu trước khi triển khai; nếu sai, dừng, không sửa trực tiếp dữ liệu. - Thử tạo trang giới thiệu nháp tại
/courses/apmaths/có chọn môn tồn tại; không tạo môn mới, không sửa membership. Chỉ công bố khi đã nghiệm thu UI. - Chưa tự động ghi danh hoặc khóa các sinh viên đang có theo trạng thái gói.
C. Kiểm thử giáo viên ngoài — Supabase 2
- Authentication → URL Configuration: kiểm tra Site URL
https://apmaths.io.vnvà Redirect URLshttps://apmaths.io.vn/platform/(thêm preview chính xác nếu cần); xác minh email, CAPTCHA/rate-limit. - Đăng nhập Admin
[email protected]trên/platform/; thử xét duyệt/từ chối một đăng ký giáo viên thử. - Tạo 2 giáo viên thử và học sinh thử: tạo workspace, lớp, mã mời, tham gia/rời lớp, tạo ngân hàng/đề, làm bài, chấm điểm, xem kết quả.
- Kiểm tra giáo viên A không xem được nội dung/đáp án/lớp của giáo viên B; học sinh không xem được đáp án trước nộp và không tự sửa điểm.
- Kiểm tra Security Advisor, ưu tiên cảnh báo mật khẩu rò rỉ, CAPTCHA, bảo vệ tài khoản. Chưa mở signup đại trà trước nghiệm thu.
D. Sau khi các bước trên đạt
- Đánh giá tải và khả năng dùng đồng thời; theo dõi Supabase quota/logs, Cloudflare Analytics.
- Mở thử nghiệm với nhóm nhỏ giáo viên/học sinh, tổng hợp lỗi và phản hồi.
- Lập kế hoạch lớp học có bài giảng/PDF, bài tập/tiến độ, sổ điểm và mở rộng CLO; không can thiệp cấu trúc môn cũ khi chưa có bản sao lưu và migration kiểm thử.
- Chỉ triển khai trả phí/AI nâng cao sau khi có nhà cung cấp thanh toán, đối soát backend và kiểm tra quyền truy cập.
- Cloudinary và việc chuyển hướng toàn bộ domain cũ vẫn tạm hoãn.
3. Quy tắc cho phiên tiếp theo
- Ưu tiên nghiệm thu, không làm thêm chức năng nếu phần lõi đang lỗi.
- Trước khi thay đổi Supabase 1 phải thống kê/sao lưu dữ liệu cần bảo vệ. Không tự sửa/xóa
subjects,subject_members,question_banks,questions,exams, kết quả hoặc điểm. - Mỗi hệ thống sử dụng đúng Supabase/Auth của mình; không chép học sinh/đề bảo mật giữa Supabase 1 và Supabase 2.
- Mọi fix có commit, kiểm thử, đối chiếu trước/sau và cập nhật MD; không tạo các bản ghi thử lâu dài trong production.
- Không hứa hẹn web production đã ổn định chỉ dựa trên Jekyll build hoặc merge: cần kiểm tra Cloudflare + browser.
- Không tự thay DNS, mở thanh toán, đổi điều hướng legacy hoặc thêm media/CDN khi chưa thống nhất.
4. Điểm bắt đầu khi quay lại
Bước kế tiếp duy nhất: mở Cloudflare Pages → apmaths-io-vn → Deployments, xác nhận deployment Production của main sau PR #4 đã thành công. Sau đó kiểm tra từng URL công khai và mới tiến hành test Auth/AI-CLO.
Tham chiếu
- PR #4 đã merge — squash commit
e1f337b7ceddc914222b70936d34732742953e7d. - Tiến độ đợt 3B–5.
- Lộ trình, quy tắc thay đổi.
- Supabase 1 — quy tắc giữ môn cũ.
- Supabase 2 — vận hành giáo viên.
Trạng thái chốt phiên: Đã merge mã nguồn; chưa xác nhận Cloudflare Production/E2E; không sửa thêm database hoặc source sau phiên này.