---
url: https://docs.nemo12.com/architecture/sdd-016-orca-competitions.md
description: >-
  Orca (SDD-016): trung tâm cuộc thi và thử thách bên ngoài, đối tượng cốt lõi,
  Fit Score và gợi ý chọn cuộc thi phù hợp.
---

# 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)

```text
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ễ.
* `verified` phâ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).
