SDD-016 — Orca: Competition & Challenge Hub
Orca là cửa sổ nhìn ra thế giới cạnh tranh bên ngoài Nemo12: Nemo/Marlin khám phá, theo dõi và chọn đúng cuộc thi (Kangaroo/IKMC, APMO, robotics, coding, English, debate…). Không phải bảng thông báo — là Competition Intelligence System: không chỉ "có cuộc thi nào?" mà "cuộc thi nào đáng tham gia, lúc này, vì sao?". North Star: meaningful participations per active learner — đúng sân, đúng lúc, mục tiêu rõ; không tối ưu số lượng.
1. Core objects (REQ-ORC-01)
competitions: id, name, name_vi?, organizer, domain (mathematics|science|physics|chemistry|biology|
robotics|ai|coding|english|writing|debate|arts), subject_id?, grade_min, grade_max,
geography (local|national|regional|international), mode (online|offline|hybrid),
level (school|local|national|regional|international), intensity 1..5,
-- 1 Exploratory · 2 Beginner · 3 Competitive · 4 Highly Competitive · 5 Elite
format, team (individual|team|both), fee_note?, website?, description,
required_capabilities_json?, prestige 1..5?, awards_note?, qualification_note?,
verified 0|1, status (active|archived), source_ref?, created_at
competition_editions: id, competition_id, year, registration_deadline?, competition_date?,
results_date?, location?, notes?, status (upcoming|open|closed|done)
competition_actions (learner-owned journey): learner_id, competition_id, edition_id?,
state (saved|interested|plan_to_join|registered|preparing|participated|completed|awarded|skipped),
result?, score?, ranking?, award?, reflection?, updated_at -- PK (learner_id, competition_id)- Edition tách riêng (IKMC → IKMC 2026/2027/2028): deadline/địa điểm/kết quả theo năm.
- Phân loại tối thiểu: domain × level × intensity 1–5 — tránh recommend quá khó/quá dễ.
verifiedphân biệt thông tin đã kiểm chứng vs sưu tầm (deadline ước tính phải ghi rõ).
2. Trải nghiệm chính (REQ-ORC-02, 03)
- Orca Home: Recommended for You · Upcoming · Registration Closing Soon · Popular in Your Grade · Explore (browse + search/filter domain/level/grade/geography).
- Detail page trả lời nhanh: What is it? · Who is it for? · Why compete? · Difficulty/intensity · Timeline (Registration → Preparation → Competition → Results) · Requirements · Nemo12 Assessment ("Strong Match — readiness 82%, độ khó phù hợp, còn 11 tuần chuẩn bị, khớp goal").
- Learner thấy Orca như competitive world (Your Competitions, Next Challenge, History, Awards) — không leaderboard công khai gây áp lực (ngoài MVP, §19).
3. Fit Score & Recommendation (REQ-ORC-04)
Orca Fit Score 0–100 = tổng hợp: Eligibility (grade/tuổi) · Skill fit (Learner Model readiness theo domain) · Interest fit (preferences/Portrait) · Difficulty fit (intensity vs trình độ) · Schedule fit (lịch thi học kỳ + thời gian chuẩn bị — Context) · Strategic value (Goal Model/Portrait/parent aspirations). Bắt buộc có explanation — không chỉ con số. Không recommend chỉ theo tuổi. Parent verdict đơn giản: Strongly Recommended | Recommended | Optional | Not Recommended Now + reasoning — chống "có cuộc thi là cho thi hết". MVP: fit v1 deterministic (eligibility + domain-school match + deadline); bản đầy đủ nối Recommendation Engine (SDD-002 §10) khi Goal/Readiness Model live (SRC-032).
4. Journey → Evidence (REQ-ORC-05, 06)
Lifecycle: Discover → Interested → Decide → Register → Prepare → Compete → Result → Reflection — trạng thái lưu ở competition_actions; kết quả (score/ranking/medal/award + reflection, upload certificate qua Media SDD-009 khi mở) là Evidence vào Registry (SDD-002 §5, source competition, reliability cao) và achievement hiển thị cho learner/parent. Trạng thái hành trình phát event CompetitionActionRecorded (Model Update Policy SDD-002 §14).
5. Calendar & Context (REQ-ORC-07)
Deadline đăng ký + ngày thi + ngày kết quả vào learner calendar và Context Event Registry (SDD-002 §5b, type COMPETITION_DEADLINE/COMPETITION_DATE) → mode switching/Planning biết trước các mốc. Notifications (REQ-ORC-09, qua SDD-005 §5): cuộc thi mới phù hợp, sắp đóng đăng ký, sắp thi, có kết quả, "giờ em đã đủ readiness cho cuộc thi từng quá khó" — có priority chống spam.
6. Admin qua Coral (REQ-ORC-08)
Competition data quản lý trong Coral (SDD-013): create/update edition, verify + source, mark official/unverified, archive, merge duplicates, reputation, tag capabilities. Orca là experience cho user; Coral là data ops. MVP: quản lý bằng seed script (manual) + Coral tab đợt sau. Whale giữ mảng du học/học bổng; category competition trong whale_opportunities sẽ chuyển dần về Orca (không nhân đôi registry).
Trace
| REQ | Section |
|---|---|
| REQ-ORC-01 (objects + editions + phân loại) | §1 |
| REQ-ORC-02 (home + explore + search) | §2 |
| REQ-ORC-03 (detail + Nemo12 Assessment) | §2 |
| REQ-ORC-04 (Fit Score + parent verdict, có explanation) | §3 |
| REQ-ORC-05 (journey states) | §4 |
| REQ-ORC-06 (results → Evidence) | §4 |
| REQ-ORC-07 (calendar + context events) | §5 |
| REQ-ORC-08 (admin qua Coral, verified) | §6 |
| REQ-ORC-09 (notifications có priority) | §5 |
Liên quan: SDD-002 (§5 evidence, §5b context events, §10 recommendation), SDD-011 §9 (Whale — phân ranh), SDD-013 (Coral ops), SDD-015 (Portrait input cho fit), SDD-005 §5 (notifications), SDD-009 (upload certificate).