Theo dõi hoạt động
Thời gian sử dụng app của các giáo viên trong trường.
Đang tải...
Đang tải dashboard giám sát...
Đang tải cài đặt hệ thống...
Phân tích lỗi sai toàn lớp
Dựa trên kết quả 38 học sinh · Kiểm tra HK1
AI phát hiện: 3 câu hỏi có tỷ lệ sai trên 50% — học sinh chưa nắm vững phần Di truyền liên kết và Phân bào.
Tỷ lệ sai theo chương
Ch.2 — Tính quy luật DT54%
Ch.1 — Cơ chế di truyền38%
Ch.3 — DT quần thể22%
Gợi ý của AI
Nên dành 1–2 tiết dạy lại Chương 2 trước kỳ thi. Tập trung vào: di truyền liên kết và hoán vị gen.
Câu hỏi nên bổ sung vào bài ôn:
Di truyền liên kết (12 câu) Hoán vị gen (8 câu) Phân bào giảm nhiễm (10 câu)
️ Top câu hỏi sai nhiều nhất
CâuNội dungChươngĐộ khóSai đáp án hay chọn% Sai
Câu 12 Di truyền liên kết giới tính — gen trên NST X lặn Ch.2 VD Đáp án B (sai) — chọn nhiều nhất 68%
Câu 7 Giai đoạn xảy ra hoán vị gen trong giảm phân Ch.1 TH Đáp án A (sai) 51%
Câu 19 Đột biến mất đoạn NST — hậu quả Ch.2 TH Đáp án C (sai) 44%
Cấu hình API — AI Engine
Chọn provider AI để tạo câu hỏi, phân tích tài liệu và soạn nhận xét
Giao bài tập
Giao đề kiểm tra hoặc bài ôn luyện cho lớp
12A1 12A2 12A3
Xem trước thông báo gửi cho học sinh
Bài kiểm tra mới từ cô Mai

Cô đã giao bài: Kiểm tra 15 phút — Chương 1
Môn: Sinh học 12 · 20 câu · 15 phút
Thời gian mở: 20/05/2025 07:00
Hạn nộp: 21/05/2025 23:59

Vào app để làm bài nhé!
Gửi thông báo qua:
Tự động hoá
Đang tải…
Phòng đấu thi
Đang tải...
Gửi thông báo
Gửi thông báo cho cả trường (Admin) hoặc lớp/HS (Giáo viên).
Đang tải...
Danh mục
Đang tải…
Lớp học
Tính năng đang phát triển
Quản lý trang (CMS)
Đang tải...
Tạo đề kiểm tra mới
AI tạo câu hỏi từ tài liệu, bạn duyệt và chỉnh sửa
Cấu hình đề
MứcSố câu%
Nhận biết40%
Thông hiểu40%
Vận dụng20%
Tất cả Ch.1 — Cơ chế DT Ch.2 — Tính quy luật Ch.3 — DT quần thể
Xem trước — AI đã tạo
AI đã tạo 40 câu từ tài liệu Sinh học 12
Câu 1 · Nhận biết · Chương 1
ADN polymerase có chức năng gì trong quá trình nhân đôi ADN?
A. Tháo xoắn phân tử ADN
B. Tổng hợp mạch mới
C. Nối các đoạn Okazaki
D. Tách hai mạch ADN
Câu 2 · Thông hiểu · Chương 1
Nguyên tắc bổ sung được thể hiện ở giai đoạn nào của cơ chế di truyền ở cấp độ phân tử?
A. Chỉ ở nhân đôi ADN
B. Chỉ ở phiên mã
C. Chỉ ở dịch mã
D. Cả 3 quá trình trên
Câu 3 · Vận dụng · Chương 1
Một gen có 900 cặp nucleotide, trong đó A chiếm 30%. Số liên kết hydro của gen là bao nhiêu?
A. 1800
B. 2100
C. 2400
D. 1620
... và 37 câu tiếp theo
Dashboard — Tổng quan
Tuần này: 15–21/5/2025 · Lớp 12A1 & 12A2
Đề đã tạo
24
+3 tuần này
Câu hỏi trong ngân hàng
312
3 chương · Sinh 12
Học sinh đang ôn
47
38 hoàn thành bài mới
Điểm TB toàn khối
7.2
0.4 so với kỳ trước
Câu hỏi học sinh hay sai nhất
Câu hỏiChương% Sai
Di truyền liên kết giới tính Ch.2 68%
Phân bào giảm nhiễm Ch.1 51%
Đột biến cấu trúc NST Ch.2 44%
Quy luật Mendel — phân li Ch.2 38%
Hoạt động gần đây
Hôm nay 09:30
Nguyễn Văn A hoàn thành đề HK1
Sinh 12 · 8.5 điểm · 35 phút
Hôm nay 08:15
Trần Thị B luyện tập Di truyền
6.0 điểm · Cần ôn lại 5 câu
Hôm qua 20:00
AI tạo xong đề kiểm tra 15 phút
20 câu · 2 mã đề · Ch.1–2
Hôm qua 17:45
Lê Minh C thi thử lần 3
5.0 điểm · Vẫn yếu phần đột biến
Điểm trung bình theo tuần (lớp 12A1)
T1
T2
T3
T4
T5
T6
T7
Điểm TB tăng dần — học sinh đang có xu hướng tiến bộ
DEV — Quản lý License & User
Trang dành riêng cho nhà phát triển. Thống kê + quản lý người dùng trên Supabase chung.
Đang tải...
Hạ tầng & Bảo mật DEV
Tài liệu kỹ thuật nội bộ — chi tiết stack, security, bảo mật. KHÔNG hiển thị cho user public.
BẢO MẬT: trang này chỉ cho DEV / system admin. Không screenshot hay paste sang chat AI / forum / public docs. Nội dung có thể leak thông tin nhạy cảm về hạ tầng nếu lộ ra ngoài.
1. Hạ tầng triển khai

Frontend

  • Stack: Vanilla JavaScript thuần (không framework). Build bundle 1 file HTML duy nhất dist/OnThiAI.html (~1.8MB).
  • Hosting: Cloudflare Worker — domain chính onthiai.com, backup *.workers.dev.
  • Domain registrar: Cloudflare Registrar, hết hạn 18/06/2027.
  • CDN + SSL: Cloudflare tự cấp SSL Let's Encrypt, auto-renew.

Backend & Database

  • Database: Supabase (PostgreSQL 17), region ap-southeast-1 (Singapore).
  • Project ID: hyrjtdtqfhhleewjgtil.
  • Plan hiện tại: Free tier (500MB DB, 2GB egress/tháng). Upgrade Pro ($25/tháng) khi cần PITR backup.
  • API: PostgREST auto-gen REST + RPC functions, Realtime websocket cho event kick/notification.

Authentication

  • Provider: CHỈ Google OAuth (Email provider đã tắt).
  • Cấu hình: Supabase Auth → Site URL = https://onthiai.com, Redirect URLs gồm cả domain workers.dev backup.
  • Google OAuth Client: Quản lý tại console.cloud.google.com.

License System

  • Payment processor: Gumroad — bán 3 plan (monthly $20, yearly $200, enterprise $500).
  • License Worker: onthi-license.nguyenngochoa-pay.workers.dev — validate key qua Gumroad API + ký HMAC + check KV device limit.
  • HMAC secret: SIGN_SECRET trong Worker = app_secrets.license_hmac trên Supabase. Rotate khi nghi ngờ lộ.
  • Live pricing: Worker /products fetch giá Gumroad + tỉ giá USD/VND live từ open.er-api.com (cache 5 phút / 6 giờ).

AI Features (multi-provider)

  • Default provider: OpenAI — gpt-4o-mini primary → gpt-4.1-mini fallback (rẻ, ít rate-limit).
  • Provider hỗ trợ: OpenAI · Anthropic Claude · Google Gemini · Groq (Llama) · DeepSeek. User có thể swap qua trang Cấu hình API.
  • Hot-swap: llm_active_provider / llm_primary_model / llm_fallback_model trong Admin Settings — đổi provider không cần rebuild.
  • Quota client: User tự nhập API key cho provider mình chọn → app dùng key đó → chi phí user trả.
  • Server quota: ai_daily_call_limit enforce qua localStorage counter (per user, reset 00:00).
  • PDF handling: Claude/Gemini nhận PDF binary native; OpenAI/Groq/DeepSeek extract text bằng pdf.js client-side (CDN jsdelivr).

Backup

  • Strategy: GitHub Actions cron daily 02:00 UTC (09:00 VN).
  • Method: pg_dump --schema=public → upload artifact GitHub 30 ngày.
  • Trigger thủ công: GitHub repo → Actions → "Supabase Daily Backup" → Run workflow.
  • Restore: tải artifact → giải nén .sql.gz → paste vào Supabase SQL Editor.

Monitoring

  • Worker observability: Cloudflare dash → Worker → Logs (real-time).
  • DB monitoring: Supabase Logs Explorer + trang Admin → Giám sát hệ thống.
  • Uptime monitoring: chưa setup (cân nhắc UptimeRobot free).
  • Error tracking: chưa setup (cân nhắc Sentry free 5k errors/tháng).
2. Bảo mật

Network & Transport

  • HTTPS bắt buộc: mọi connection dùng TLS 1.3 (Cloudflare).
  • HSTS: max-age 1 năm, includeSubDomains.
  • CORS: Worker chỉ cho phép request từ origin onthiai.com + workers.dev backup.

HTTP Security Headers (dist/_headers)

  • Content-Security-Policy: default-src 'self', KHÔNG unsafe-eval, frame-ancestors 'none'.
  • X-Frame-Options: DENY — chống clickjacking.
  • X-Content-Type-Options: nosniff
  • Referrer-Policy: strict-origin-when-cross-origin
  • Permissions-Policy: tắt geolocation, microphone, camera, payment.

Database Security

  • RLS (Row-Level Security): bật trên 100% bảng public. Mỗi user chỉ SELECT/INSERT/UPDATE/DELETE được data của mình.
  • Function: 100% security definerset search_path = public (chống search_path attack).
  • Grant: critical RPC chỉ grant to authenticated, không to anon/public.
  • FK cascade: mọi reference profiles(id) / auth.users(id) đều có on delete cascade hoặc set null — flow xoá account không bị half-deleted.
  • app_secrets table: RLS deny-all, chỉ security definer function đọc được.

Authentication & Session

  • Password: KHÔNG bao giờ lưu trong DB — quản lý bởi Google.
  • JWT: Supabase issue, expire sau 1 giờ, auto-refresh.
  • Device limit: 1 PC + 1 Mobile / account. Login máy mới = kick máy cũ qua realtime websocket.
  • Account deletion: self-service qua RPC delete_my_account(), cascade hết — guard không cho xoá GV còn lớp / admin còn seat.

DEV Step-up Auth (PIN Lock)

⚠ Vì sao không dùng password Google?
Google OAuth chỉ verify password 1 lần lúc đăng nhập. Sau đó app chỉ giữ JWT token — KHÔNG có cách re-verify password client-side. Đây là giới hạn cố định của OAuth (không phải bug). Pattern industry-standard cho "sensitive operations" là step-up auth qua PIN riêng:
  • GitHub Sudo Mode — nhập password tài khoản để unlock 1 giờ
  • Vercel Step-up — re-auth qua OAuth/passkey
  • Banking apps — PIN riêng khác mật khẩu chính
→ OnThiAI dùng pattern PIN riêng cho DEV mode.
Flow hoạt động:
  • DEV login Google → menu "Nhà phát triển" hiển thị section header có icon 🔒 (khoá).
  • Bấm header → modal yêu cầu nhập PIN (lần đầu = đặt PIN, lần sau = nhập để verify).
  • PIN đúng → sessionStorage lưu timestamp → body.dev-unlocked → CSS hiện các nút DEV (🔓 xanh).
  • Idle 30 phút (không click/scroll/keydown/mousemove) → tự khoá lại.
  • Đóng tab → mất unlock → session mới phải nhập PIN.
  • Quên PIN → reset qua SQL: delete from app_secrets where key like 'dev_pin_hash:%';
Cơ chế bảo mật PIN:
  • Hashing: SHA-256 với salt = user_id (qua extensions.digest). Plaintext PIN KHÔNG bao giờ lưu DB.
  • Per-user PIN: mỗi DEV có PIN riêng — key trong app_secrets = dev_pin_hash:<user_id>.
  • Salt unique per user: chống rainbow table attack — cùng PIN ở 2 user khác nhau cho hash khác nhau.
  • Brute force: Supabase rate-limit RPC (~1000 req/giờ/user). Kết hợp PIN ≥ 6 ký tự → không thể brute trong thời gian thực tế.
  • Transport: PIN gửi qua HTTPS/TLS 1.3 → không sniff được trên đường truyền.
  • RPC: set_dev_pin(text), verify_dev_pin(text) → boolean, has_dev_pin() → boolean — tất cả security definer, check _is_system_admin().
So sánh với Google password:
Password GooglePIN DEV
Khả thi kỹ thuật❌ OAuth không cho re-verify✅ Có
Bảo mậtApp lớn (GitHub Sudo) dùng pattern nàyTương đương
TiệnNhớ 1 mật khẩuNhớ 2 (Google + PIN DEV)
ResetQua GoogleQua SQL (cần access Supabase = chỉ DEV thật làm được)

Secrets Management

  • Supabase anon key: public (by design — chỉ là pre-auth key, gateway tới Auth).
  • Supabase service_role: KHÔNG BAO GIỜ xuất hiện ở client/Worker.
  • SIGN_SECRET (HMAC): Worker secret, sync với app_secrets.license_hmac.
  • DB password: chỉ dùng cho backup workflow, lưu GitHub Secret SUPABASE_DB_URL.
  • GitHub PAT: dùng push code, expire 90 ngày, scope tối thiểu (repo + workflow).

Anti-abuse

  • Unique constraints: exam_assignments(exam_id, class_id) — chống giao đề trùng.
  • Trial cheat prevention: Trial đếm upload từ created_at không reset theo tháng (chặn bypass).
  • Billing cycle: 30 ngày từ license_activated_at, không reset theo lịch dương (chuẩn product).
  • Bot Fight Mode: chưa bật trên Cloudflare (cân nhắc bật).
  • CAPTCHA: chưa bật ở Supabase Auth (cân nhắc bật Turnstile).
3. Chi phí & Hạn renewal
ItemChi phíHạnNote
Domain onthiai.com~$10/năm18/06/2027Cloudflare Registrar at-cost
Cloudflare WorkersFree100k req/ngày free
SupabaseFree500MB DB, 2GB egress. Upgrade Pro $25/tháng khi cần backup PITR
GitHubFreePrivate repo + Actions 2000 phút/tháng
GitHub PATFree90 ngàyRotate trước khi hết hạn
Gumroad10% + $0.30/txnTrừ khi user mua
Open.er-api.com (FX)FreeNo auth, no limit hiển nhiên
OpenAI (mặc định)Pay-as-you-goUser dùng key riêng · gpt-4o-mini ~$0.15/1M in
Anthropic ClaudePay-as-you-goUser dùng key riêng · haiku-4-5 rẻ
Google GeminiFree tier + PayUser dùng key riêng · 2.5-flash
Groq / DeepSeekFree tier / PayProvider phụ · OpenAI-compat endpoint
4. Tài liệu & Reference
  • Runbook khi sự cố: docs/OPERATIONS.md — emergency scenarios, routine, common fixes.
  • Setup backup: docs/BACKUP-SETUP.md — step-by-step.
  • Git/GitHub guide: docs/GIT-GITHUB-GUIDE.md — workflow 7 bước, lỗi thường gặp.
  • CLAUDE.md: hướng dẫn AI assistant — đọc trước mỗi session để hiểu project.
  • Pre-prod audit: .claude/skills/preprod-audit/SKILL.md — checklist 8 tầng trước launch.
5. Quick links (chỉ DEV)
  • Supabase Dashboard: link
  • Cloudflare Workers: link
  • GitHub repo: link
  • GitHub Actions (backup): link
  • Google Cloud Console (OAuth): link
  • Gumroad seller: link
  • License Worker health: /products
Danh sách đề đã tạo
24 đề · Sinh học 12
Tên đềMônSố câuMã đềThời gianGiao cho lớpTrạng thái
Kiểm tra 15 phút — Chương 1 Sinh 12 20 câu 132, 209 15 phút 12A1 Đang mở
Thi học kỳ 1 Sinh 12 40 câu 132, 209, 315, 418 45 phút 12A1 12A2 Đang mở
Ôn tập Di truyền liên kết Sinh 12 30 câu 501 30 phút Chưa giao Nháp
Xuất / Phục hồi dữ liệu
Sao lưu data của bạn, chia sẻ câu hỏi giữa giáo viên, tải báo cáo Excel
Tại sao cần backup? Dữ liệu của bạn (lớp, câu hỏi, đề, bài làm của HS) lưu trên Supabase cloud — an toàn nhưng vẫn nên backup định kỳ. Tải file về máy → khi cần phục hồi chỉ cần upload lại.
1. Xuất báo cáo lớp ra Excel/CSV
Tải bảng điểm HS, có thể mở bằng Excel / Google Sheets. Phù hợp để in, gửi phụ huynh, lưu hồ sơ.
2. Sao lưu toàn bộ dữ liệu (.json)
File chứa: thông tin GV, lớp, ngân hàng câu hỏi, đề thi, danh sách HS join lớp, kết quả bài làm. Khuyến nghị: backup mỗi tháng / sau khi tạo nhiều nội dung mới.
Bảo mật: File này chứa email/tên HS. Không chia sẻ công khai.
3. Chia sẻ ngân hàng câu hỏi với GV khác
Xuất câu hỏi (không kèm thông tin HS) → gửi cho GV khác → họ import vào ngân hàng của họ. Cộng đồng GV chia sẻ kho đề.
Nhận xét học sinh
Tính năng đang phát triển
Bảng xếp hạng
Đang tải...
Quản lý giáo viên
Mời tối đa 30 GV vào trường của bạn — mỗi GV được tự động kích hoạt theo license trường.
Đang tải...
Bài đọc đã giao
Đang tải…
Thông báo
3 thông báo chưa đọc
Lê Minh C vừa nộp bài kiểm tra
Đề HK1 · Sinh 12 · Điểm: 5.0 · 5 phút trước
AI đã tạo xong 40 câu hỏi mới
Chủ đề Di truyền liên kết · 12 phút trước
6 học sinh chưa hoàn thành bài giao
Hạn nộp: hôm nay 23:59 · Lớp 12A2
Nguyễn Văn A hoàn thành bài ôn Di truyền
8.5 điểm · Hôm qua 21:30
Phụ huynh Trần Thị B xem báo cáo
2 ngày trước
Dùng Supabase riêng (nâng cao)
Lưu data trên Supabase của riêng bạn thay vì hệ thống chung — toàn quyền kiểm soát
Tính năng nâng cao — chỉ dùng nếu bạn muốn data hoàn toàn riêng tư.
  • Sau khi đổi, data hiện tại sẽ KHÔNG còn truy cập được qua app này (vẫn còn nguyên trên Supabase cũ).
  • Học sinh của bạn cũng phải biết URL mới để đăng nhập — nên báo cho HS biết trước.
  • Bạn có thể quay lại Supabase chung bất cứ lúc nào.
Đang dùng Supabase:
1 Tạo Supabase project (miễn phí)
Vào trang Supabase, đăng ký bằng GitHub/Google (free). Tạo project mới — chọn region Singapore hoặc gần Việt Nam nhất để nhanh.
Mở Supabase Dashboard
Khi tạo project xong, đợi ~2 phút để DB khởi tạo hoàn tất.
2 Chạy SQL setup (cấu trúc bảng)
Không cần biết SQL — chỉ cần copy-paste:
  1. Bấm " Copy SQL setup" bên dưới
  2. Trong Supabase project mới: SQL Editor (sidebar trái) → New query
  3. Paste (Ctrl+V) → bấm Run (góc phải dưới hoặc Ctrl+Enter)
  4. Đợi 30-60s → thấy "Success" = xong
Mở SQL Editor
3 Lấy URL + Key của project bạn
Trong Supabase project: vào Settings () → API. Bạn cần:
  • Project URL — dạng https://xxxxxxxx.supabase.co
  • anon public key — chuỗi dài bắt đầu bằng eyJhbGc...
Chỉ copy "anon public key", KHÔNG copy "service_role key" — service_role có quyền tuyệt đối, lộ ra ai cũng xoá được DB của bạn.
4 Paste vào đây
Quay lại Supabase chung (mặc định)
Nếu bạn muốn dùng lại Supabase chung của hệ thống — dữ liệu trên Supabase riêng vẫn còn, chỉ là app không truy cập đến nữa.
In đáp án cho giáo viên
Kèm thang điểm, giải thích từng câu
Đáp án — Mã đề 132 · Kiểm tra 15 phút
Mỗi câu đúng: 0.5 điểm · Tổng: 10 điểm

Giải thích câu khó
Câu 12 (VD cao) — Đáp án C
Di truyền liên kết giới tính — gen trên NST X lặn
Giải thích: Con gái bị bệnh khi nhận cả 2 alen lặn từ bố và mẹ (X^a X^a). Con trai bị bệnh khi nhận 1 alen lặn từ mẹ (X^a Y). Do đó tỉ lệ mắc bệnh ở nam cao hơn nữ.
Phiếu trả lời trắc nghiệm
Học sinh tô vào phiếu, giáo viên chấm nhanh
PHIẾU TRẢ LỜI TRẮC NGHIỆM
Họ tên: _________________________
Mã đề: _____
1.A ○B ○C ○D ○
2.A ○B ○C ○D ○
3.A ○B ○C ○D ○
4.A ○B ○C ○D ○
5.A ○B ○C ○D ○
6.A ○B ○C ○D ○
7.A ○B ○C ○D ○
8.A ○B ○C ○D ○
9.A ○B ○C ○D ○
10.A ○B ○C ○D ○
11.A ○B ○C ○D ○
12.A ○B ○C ○D ○
13.A ○B ○C ○D ○
14.A ○B ○C ○D ○
15.A ○B ○C ○D ○
16.A ○B ○C ○D ○
17.A ○B ○C ○D ○
18.A ○B ○C ○D ○
19.A ○B ○C ○D ○
20.A ○B ○C ○D ○
In đề cho học sinh
Xuất PDF để in, không kèm đáp án
Gợi ý: lớp 42 HS, 2 mã đề → 21 bản mỗi mã
️ Xem trước đề học sinh
Thông tin cá nhân
Quản lý tài khoản của bạn
Ngân hàng câu hỏi
312 câu hỏi · Sinh học 12
Nội dung câu hỏi Chương Độ khó Loại Số lần dùng % Sai
ADN polymerase có chức năng gì trong quá trình nhân đôi ADN? Ch.1 Nhận biết TN 8 lần 22%
Nguyên tắc bổ sung được thể hiện ở giai đoạn nào? Ch.1 Thông hiểu TN 5 lần 44%
Di truyền liên kết giới tính — gen trên NST X, tính trạng lặn biểu hiện ở đời F2? Ch.2 Vận dụng TN 12 lần 68%
Phân tích ý nghĩa của quá trình giảm phân trong tiến hoá Ch.1 Vận dụng TL 3 lần 51%
Báo cáo lớp học
Tổng hợp kỳ HK1 · Lớp 12A1
Phân phối điểm
0–2
2–4
4–5
5–6
6–7
7–8
8–9
9–10
Phân loại xếp hạng
Xếp loạiĐiều kiệnSố HS%
Giỏi≥ 8.01228%
Khá6.5 – 7.91638%
Trung bình5.0 – 6.4819%
Yếu< 5.0614%
Bảng điểm — Kiểm tra HK1
Lớp 12A1 · 40 câu · 45 phút · 38/42 đã nộp
Điểm TB
7.2
Điểm cao nhất
9.5
Điểm thấp nhất
3.5
Tỷ lệ trên 5.0
85%
STTHọc sinhĐiểmĐúng/TổngThời gianPhân loạiĐiểm yếu
1
NA
Nguyễn Văn A
8.5 34/40 32 phút Giỏi
2
TB
Trần Thị B
6.0 24/40 40 phút Trung bình Phân bào, Đột biến
3
LC
Lê Minh C
4.5 18/40 45 phút Yếu Nhiều chương
Bảo mật API Key
Đang tải...
Cài đặt chung
Mua License
Đang tải...
Upload tài liệu nguồn
Kho tệp dùng cho 2 việc:  Giao bài đọc cho lớp ·   AI sinh câu hỏi từ tệp kiến thức (ở Ngân hàng câu hỏi).
Có tệp đã có sẵn Q&A format chuẩn? Vào Ngân hàng câu hỏi → Import từ file.
Kéo thả hoặc click để chọn file
Hỗ trợ: DOCX, TXT, MD
Tối đa 1 MB / file · 20 file / tháng
Mức dùng tháng này: / 20 file · Lớp: / 1 · HS: / 50
Kho tệp dùng chung — chấp nhận MỌI loại nội dung (bài giảng, lý thuyết, công thức, tóm tắt, SGK, kể cả Q&A có sẵn). Mỗi nơi sử dụng sẽ phù hợp với loại tệp khác nhau — xem chi tiết bên dưới.
Tệp này dùng được cho việc gì? Loại nội dung nào phù hợp?
Giao bài đọc cho lớp
Bao quát rộng — HS mở viewer đọc trước buổi học. Mọi loại tệp đều được: bài giảng, lý thuyết, công thức, tóm tắt chương, đề Q&A để HS làm quen, đề cương ôn tập, tài liệu tham khảo...
AI sinh câu hỏi (từ tệp kiến thức)
AI đọc tệp rồi tự nghĩ câu hỏi MỚI. Phù hợp nhất: tệp kiến thức (bài giảng, lý thuyết, tóm tắt). Tệp Q&A có sẵn cũng dùng được nhưng không tối ưu — AI vẫn sinh câu mới chứ không trích sẵn từ tệp.
Đề Q&A có sẵn → vào thẳng Ngân hàng câu hỏi
Muốn parse đề Q&A có đáp án vào bank để dùng cho đề thi? Vào Ngân hàng câu hỏi → Import từ file — bỏ qua bước upload, chọn tệp trực tiếp, giữ nguyên đáp án bạn đã soạn.
Mẹo viết tệp kiến thức (để AI sinh câu chính xác):
  • tiêu đề chương / mục rõ (vd # Chương 1 ở .md hoặc Heading 1 ở .docx)
  • Định nghĩa & khái niệm nêu thẳng, không vòng vo
  • Ví dụ minh hoạ kèm kết quả cụ thể (số liệu, công thức rõ ràng)
  • Tránh: ảnh chèn rời, bảng quá phức tạp, công thức toán dưới dạng ảnh
Mẹo: tệp PDF? Mở Word / Google Docs → File → Open → Save As .docx. Nhanh, miễn phí, AI & viewer đọc được đầy đủ.
Tài liệu đã upload (0)
Tên fileLoạiKích thướcNgày uploadTrạng thái
Chưa có tài liệu. Kéo thả hoặc click vùng trên để upload.
Mẹo: tệp càng chi tiết & có cấu trúc rõ → HS đọc dễ + AI sinh câu hỏi chính xác. 1 tệp có thể vừa Giao bài đọc vừa làm nguồn AI sinh câu.
Hỏi AI giải thích
Tính năng đã tắt
Flashcard
Ôn nhanh khái niệm — lật thẻ để xem đáp án
KHÁI NIỆM
Hoán vị gen là gì?
Click để xem đáp án
Thẻ 5 / 24 · Chương 2 — Di truyền
Thi cùng bạn bè
Tạo phòng thi hoặc vào phòng bạn mời
Phòng thi đang mở
Phòng của Minh Quân
Đang mở · 3/4 người
Sinh 12 · 20 câu · 15 phút · Bắt đầu khi đủ 4 người
Phòng tập Di truyền
2/6 người
Sinh 12 · 30 câu · 30 phút
Tạo phòng thi mới
Lịch sử làm bài
NgàyBài kiểm traĐiểmĐúng/TổngThời gian
20/05Kiểm tra 15 phút — Ch.16.513/2014 phút
18/05Ôn tập Di truyền — Ch.28.024/3028 phút
15/05Thi thử HK1 (lần 1)6.024/4042 phút
12/05Thi thử HK1 (lần 2)7.028/4039 phút
Trang chủ
Đang tải...
Bảng xếp hạng
Lớp 12A1 · Tuần này · Sinh học 12
NA
Nguyễn Văn A
62 câu đúng · 7 ngày streak
920 điểm
MA
Minh Anh (Tôi)
48 câu đúng · 5 ngày streak
740 điểm
PD
Phạm Thị D
44 câu đúng · 4 ngày streak
680 điểm
4
HT
Hoàng Tuấn E
38 câu đúng
560 điểm
5
LC
Lê Minh C
22 câu đúng
310 điểm
License của tôi
Đang tải...
Bài đọc
Đang tải…
Thông báo
Đang tải...
Tổng quan
Đang tải...
Thông tin cá nhân
Quản lý tài khoản của bạn
Tiến độ của tôi
Sinh học 12 · HK1
Đã ôn xong
60%
Chương trình HK1
Điểm TB
7.4
8 bài đã làm
Streak
5
Ngày ôn liên tiếp
Câu đã ôn
348
Tổng tất cả môn
Tiến độ theo chương
Chương 1 — Cơ chế di truyền và biến dị cấp phân tử85%
Chương 2 — Tính quy luật của hiện tượng di truyền45%
Chương 3 — Di truyền học quần thể20%
Chương 4 — Ứng dụng di truyền học5%
Dự đoán điểm thi của AI
Dựa trên kết quả hiện tại: điểm thi dự kiến 6.5 — 7.2. Cần ôn thêm Chương 2, 3 để đạt 8.0+.
Ôn tập cá nhân
Đang tải...
Upload tài liệu của tôi
Upload đề cương, tóm tắt, ảnh chụp bài giảng — AI sẽ tạo câu hỏi cho bạn ôn
Kéo thả file vào đây
PDF, ảnh chụp bài giảng, DOCX
Tài liệu đã upload
FileTrạng tháiCâu hỏi tạo được
tom-tat-di-truyen.pdf Xong 45 câu
chuong2-trang10.jpg Xong 12 câu
Điểm yếu cần ôn
AI phân tích từ lịch sử làm bài của bạn
Bạn có 3 chủ đề yếu có thể ảnh hưởng lớn đến điểm thi. Ôn ngay!
Di truyền liên kết giới tính
Yếu — 68% sai
Sai 8/12 câu liên quan đến chủ đề này · Chương 2
Phân bào giảm nhiễm
Cần cải thiện — 51% sai
Sai 5/10 câu · Chương 1
Đột biến cấu trúc NST
Cần cải thiện — 44% sai
Sai 4/9 câu · Chương 2
Về trang chủ
Chính sách bảo mật (Privacy Policy)
Cập nhật: 18/06/2026

OnThiAI (sau đây gọi là "Dịch vụ") tôn trọng quyền riêng tư của người dùng. Tài liệu này giải thích chúng tôi thu thập, sử dụng và bảo vệ dữ liệu cá nhân như thế nào.

1. Dữ liệu chúng tôi thu thập

  • Thông tin tài khoản: địa chỉ email và tên hiển thị do người dùng cung cấp khi đăng nhập.
  • Thông tin hồ sơ: khối lớp, trường, vai trò (học sinh/giáo viên) do người dùng tự nhập.
  • Hoạt động học tập: đề thi, câu hỏi, kết quả làm bài, tài liệu người dùng upload.
  • KHÔNG thu thập: số điện thoại, địa chỉ nhà, vị trí GPS, dữ liệu sinh trắc học, danh bạ, ảnh cá nhân.

2. Cách dùng dữ liệu

  • Cung cấp tính năng học và luyện thi cho người dùng.
  • Phân tích kết quả để gợi ý câu hỏi và bài học phù hợp.
  • Liên hệ kỹ thuật khi cần (qua email đăng ký).
  • Cải thiện trải nghiệm dịch vụ.
  • KHÔNG bán dữ liệu cho bên thứ ba. KHÔNG dùng cho quảng cáo. KHÔNG chia sẻ với mục đích thương mại khác.

3. Quyền của bạn

  • Xem: mọi dữ liệu của bạn đều truy cập được trong app (trang Thông tin cá nhân, Lịch sử, Kết quả).
  • Sửa: chỉnh sửa thông tin cá nhân qua giao diện app bất cứ lúc nào.
  • Xoá: bấm "Xoá vĩnh viễn tài khoản" trong trang Profile — toàn bộ dữ liệu của bạn (đề, kết quả, lịch sử, lớp tham gia) sẽ bị xoá và KHÔNG khôi phục được.
  • Xuất: Giáo viên có chức năng Backup/Export dữ liệu của riêng mình tại trang Xuất / Phục hồi dữ liệu.

4. Bảo mật

Chúng tôi áp dụng các biện pháp bảo mật theo tiêu chuẩn ngành để bảo vệ dữ liệu của người dùng. Mật khẩu được quản lý bởi nhà cung cấp dịch vụ đăng nhập (Google) — chúng tôi KHÔNG lưu trữ mật khẩu của bạn.

Mọi truy cập dữ liệu được kiểm soát chặt chẽ: người dùng chỉ xem được dữ liệu của chính mình hoặc của lớp mình tham gia (theo quyền vai trò).

5. Trẻ em dưới 16 tuổi

Nếu người dùng dưới 16 tuổi, cần có sự đồng ý của phụ huynh hoặc giáo viên phụ trách trước khi đăng ký tài khoản. Phụ huynh có thể yêu cầu xoá dữ liệu của con bằng cách email đến địa chỉ hỗ trợ bên dưới.

6. Lưu trữ thông tin trên thiết bị

Một số thông tin cần thiết (vd phiên đăng nhập, cấu hình cá nhân) được lưu trên thiết bị của bạn để app hoạt động mượt. Bạn có thể xoá bằng cách đăng xuất hoặc xoá dữ liệu trình duyệt.

Chúng tôi KHÔNG dùng công nghệ tracking cho quảng cáo hoặc bán thông tin sang bên thứ ba.

7. Liên hệ

Mọi câu hỏi về chính sách bảo mật, gửi email: nguyenngochoa.info@gmail.com

8. Thay đổi chính sách

Chúng tôi có thể cập nhật chính sách này. Thay đổi quan trọng sẽ được thông báo trong app. Tiếp tục sử dụng dịch vụ sau khi cập nhật = đồng ý với chính sách mới.

Về trang chủ
Điều khoản sử dụng (Terms of Service)
Cập nhật: 18/06/2026

Bằng việc đăng ký và sử dụng OnThiAI ("Dịch vụ"), bạn đồng ý các điều khoản dưới đây.

1. Đối tượng sử dụng

  • Học sinh: ôn tập, làm bài, theo dõi tiến độ. Phải có sự đồng ý của phụ huynh nếu dưới 16 tuổi.
  • Giáo viên: tạo lớp, ngân hàng câu hỏi, giao đề, theo dõi kết quả học sinh. Cần đăng ký gói trả phí sau giai đoạn dùng thử.
  • Admin trường: quản lý nhiều giáo viên qua gói trường học.

2. Tài khoản

  • Đăng nhập qua tài khoản Google — bạn chịu trách nhiệm bảo mật tài khoản của mình.
  • 1 tài khoản chỉ được phép đăng nhập trên 1 máy tính + 1 thiết bị di động cùng lúc. Đăng nhập máy mới sẽ tự động đăng xuất máy cũ cùng loại.
  • Cấm chia sẻ tài khoản (đặc biệt với vai trò giáo viên — vi phạm có thể bị khoá tài khoản).
  • Bạn có thể tự xoá tài khoản qua trang Thông tin cá nhân bất cứ lúc nào.

3. Thanh toán & Gói dịch vụ

  • Có sẵn các gói: Dùng thử miễn phí, Gói tháng, Gói năm, Gói trường học.
  • Thanh toán qua đối tác thanh toán quốc tế, hỗ trợ thẻ Visa/Mastercard/PayPal.
  • Giá hiển thị theo USD và quy đổi sang VND theo tỉ giá tham khảo. Số tiền thực tế thẻ trừ có thể chênh nhẹ theo tỉ giá ngân hàng tại thời điểm thanh toán.
  • Không hoàn tiền: sau khi thanh toán thành công, các khoản phí KHÔNG được hoàn lại trong mọi trường hợp. Vui lòng cân nhắc kỹ và sử dụng giai đoạn dùng thử miễn phí để đánh giá dịch vụ trước khi mua gói trả phí.
  • Hết hạn gói → tài khoản bị giới hạn (vẫn xem được dữ liệu cũ, không tạo mới được).

4. Nội dung do người dùng tạo

  • Câu hỏi, đề thi, tài liệu bạn upload thuộc bản quyền của bạn.
  • Bạn cấp cho OnThiAI quyền lưu trữ và xử lý nội dung của bạn để cung cấp dịch vụ.
  • Không upload nội dung vi phạm bản quyền, đồi truỵ, kích động, hoặc sai sự thật về kiến thức.
  • Chúng tôi có thể xoá nội dung vi phạm mà không cần báo trước.

5. Tính năng AI & tính chính xác

  • Dịch vụ cung cấp các tính năng hỗ trợ bằng trí tuệ nhân tạo (sinh câu hỏi, nhận xét học sinh).
  • Nội dung do AI sinh ra CÓ THỂ SAI hoặc thiếu chính xác — giáo viên phải kiểm duyệt trước khi giao cho học sinh.
  • Chúng tôi không chịu trách nhiệm cho điểm số hay kiến thức sai do AI sinh ra mà chưa được kiểm duyệt.

6. Cấm hành vi

  • Phá hoại hệ thống, thu thập trái phép dữ liệu, tấn công làm gián đoạn dịch vụ.
  • Tạo nhiều tài khoản dùng thử nhằm né tránh thanh toán.
  • Phát tán tài khoản hoặc khoá kích hoạt cho người khác sử dụng (gói cá nhân = 1 người dùng).
  • Cố ý gian lận trong quá trình làm bài thi.

7. Trách nhiệm & Giới hạn

  • Dịch vụ được cung cấp "đúng theo hiện trạng" (AS IS) — chúng tôi cố gắng giữ chất lượng dịch vụ tốt nhất nhưng không cam kết uptime tuyệt đối.
  • Trách nhiệm tối đa của chúng tôi với bạn = số tiền bạn đã thanh toán trong 30 ngày gần nhất.
  • Chúng tôi không chịu trách nhiệm cho mất mát dữ liệu do người dùng thao tác nhầm (vd tự xoá tài khoản → không khôi phục được).
  • Khuyến nghị: dùng tính năng Backup/Export trong app để tự lưu dữ liệu quan trọng của bạn.

8. Chấm dứt

  • Bạn có thể xoá tài khoản bất cứ lúc nào (trang Thông tin cá nhân → Xoá vĩnh viễn).
  • Chúng tôi có thể khoá tài khoản nếu vi phạm điều khoản, sau khi cảnh báo qua email.
  • Gói đã thanh toán KHÔNG được hoàn tiền khi tài khoản bị khoá do vi phạm.

9. Thay đổi điều khoản

Chúng tôi có thể cập nhật điều khoản này. Thay đổi quan trọng sẽ thông báo qua email và popup khi đăng nhập. Tiếp tục sử dụng dịch vụ = chấp nhận điều khoản mới.

10. Luật áp dụng

Điều khoản này áp dụng theo luật pháp Việt Nam. Tranh chấp được giải quyết tại toà án có thẩm quyền nơi nhà cung cấp dịch vụ đặt trụ sở.

11. Liên hệ

Email hỗ trợ: nguyenngochoa.info@gmail.com