Đợt 3 — Hai Supabase độc lập của APMATHS

Quyết định cập nhật ngày 12/10/2026, thay thế phương án Auth tập trung ở Supabase 1 trong bản tài liệu đầu tiên. Phạm vi hiện tại: chỉ Supabase (database, Auth, RLS, API và luồng nghiệp vụ). Chưa tích hợp Cloudinary, R2, xử lý ảnh/âm thanh hoặc thanh toán thực tế. Tiến độ: đã triển khai 8 bảng, 3 migration, RLS/RPC Supabase 2 và trang thử nghiệm /platform/ trên PR #4. Đã PASS integration SQL có rollback. Chưa cấu hình xong Email Auth/Redirect hay kiểm thử giao diện với tài khoản thật; chưa mở công khai. Xem hướng dẫn vận hành.

Cập nhật thực thi 12/10/2026: Đã triển khai thêm migration 3C–4 (quản lý học sinh, ngân hàng câu hỏi, đề thi, gói miễn phí) và xác minh/cấp quyền Admin đầu tiên. Trang /platform/exams/ được thêm vào PR #4. Trạng thái đầy đủ tại Báo cáo Đợt 3B–5.

1. Ranh giới sản phẩm — đã thống nhất

  Supabase 1 — của bạn Supabase 2 — nền tảng giáo viên
Ref yhfburffwzvcayjadskr mhgsvxsjrzaeafvifydu
Tên hiện tại Apmaths-ai-clo Tools_out (tên cũ, dự kiến APMATHS Platform)
Đối tượng Học sinh/sinh viên của bạn Giáo viên ngoài APMATHS và học sinh của họ
Lớp học có phí Khóa học và lớp do bạn trực tiếp dạy, người mua và kết quả học ở base 1 Lớp do giáo viên khác sở hữu, người học và kết quả ở base 2
Công khai/traffic Ngân hàng luyện tập, thi thử, công cụ miễn phí do bạn quản lý Không lưu bộ thi thử công khai chung
AI-CLO Ứng dụng cá nhân hiện có; không viết lại Chỉ chọn module phù hợp để phát triển sản phẩm đa giáo viên
Auth Auth của base 1, hiện có Auth riêng của base 2 cho giáo viên/học sinh, chưa mở đăng ký
Thanh toán sau này Đơn hàng và quyền học lớp của bạn Gói dịch vụ giáo viên, lớp của giáo viên ngoài
Vận hành Không thay đổi hoạt động hiện tại Thiết kế mới từ database trống

Quy tắc quyết định nơi lưu: Chủ thể cung cấp/đứng lớp. Nếu bạn dạy, dù miễn phí hay có phí, dùng base 1. Giáo viên ngoài đứng lớp dùng base 2. Thi thử công khai phục vụ SEO/traffic của APMATHS nằm trong hệ sinh thái base 1; đề tĩnh có thể phục vụ trực tiếp từ Jekyll/CDN không cần truy vấn database.

2. Auth không kết nối chéo ở giai đoạn này

3. Schema tối thiểu Supabase 2 (đã triển khai v1)

3.1. Auth & đăng ký

3.2. Tenant / lớp học

3.3. Quy tắc RLS/API

4. Supabase 1 — chỉ bổ sung các module cần thiết (chưa thay đổi)

Giữ nguyên profiles, subjects, subject_members, questions, question_banks, practice_*, exams, exam_attempts và Edge Function đang hoạt động.

5. Không làm trong đợt này

6. Trình tự công việc

Điều kiện trước khi mở đăng ký công khai

Migration đã áp dụng trên base 2; cần cấu hình Email Auth/Redirect, bootstrap Admin, bảo vệ spam/signup, kiểm thử E2E trình duyệt, rà Supabase Advisors và xác nhận quyền trẻ vị thành niên trước khi mở công khai. Không tự merge PR #4 khi chưa qua bước này.