Koder Kora

  • Area: Industry Solutions (products/vertical)
  • Path: products/vertical/kora
  • Kind: AI study companion — Go backend + Flutter app (mobile → desktop → web)
  • Version: 0.1.0
  • Status: LIVE in PROD 2026-06-06 — https://kora.koder.dev public (no auth-gate, indexed), serving the Flutter web app; backend LXC 10.0.1.219:7850 with AI gateway (dedicated kgw_kora_ key, model anthropic/claude-opus-4-6 → 4-8 pending aigateway#060) + kdb-next durable storage. OAuth client kora in prod Koder ID.

Role in the stack

Kora is Koder's AI study companion for college-entrance exams (starting with Brazil's ENEM). It is not a video catalog — it tells a student exactly what to study next: an adaptive plan that re-sequences from real performance, a 24/7 AI tutor (text + photo), realistic mock exams scored on the TRI / 0–1000 SISU scale (item response theory, not a raw percentage), and essay grading across the five official ENEM competencies. The home screen, "Today with Kora", answers "what do I do right now?" with 3–5 prioritized blocks.

Components

Sub-path Kind Description
backend/ Go service chi router; tenant-isolated store; plantutormocks-TRIessaystoday
app/ Flutter "Today with Kora" home + Koder ID auth gate (tutormockessay screens = backlog #019)
landing/ Landing page product marketing site

Backend internals

Package Responsibility
model domain types; every entity carries koder_user_id
store Store interface + tenant-isolating in-memory impl (T1–T9); kdb adapter = #017
identity Koder ID JWKS (RS256) validation → sub = koderuserid
tri 3PL IRT: EAP θ estimation + SE, ENEM 0–1000 scaling, Fisher information
itembank topic catalog + calibrated item bank (ENEM corpus at $KORA_ENEM_DIR or embedded seed)
plan adaptive plan engine: weakest-and-overdue → plan sequence → spaced practice; EWMA mastery + spaced repetition
mocks adaptive mock assembly (max info @ θ) + TRI scoring; feeds plan
essays 5-competency ENEM grading via AI; ladder-clamped, recomputed totals
tutor per-tenant conversational + multimodal tutor with plan context
today greeting + countdown + progress ring + top blocks aggregation
fsrs FSRS-5 spaced-repetition scheduler (stability/difficulty, power forgetting curve)
placement onboarding diagnostic → per-topic mastery seeds (#009)
flashcards AI-generated cards from weak spots/missed items, FSRS-scheduled (#011)
engagement daily streak + weekly study-time goal (#014)
courses SISU cutoff dataset + "courses you can reach" ranking (#015)
themes essay theme bank + AI repertoire suggestions (#016)
ai AI gateway client (OpenAI-compatible, flagship model)
httpapi chi router + handlers (tenant id from token, cross-tenant → 404)

Spaced repetition uses FSRS (the modern Anki scheduler) across both topic review (plan) and flashcards (#010). Practice mode (#012) is a topic-scoped mini-mock; #013 explains missed items via the tutor. The mock exam delivers answer-key-stripped items (GET /mocks/{id}/items) so correctness is only ever checked server-side.

Primary couplings

Module Relationship
services/foundation/id Auth — Koder ID OAuth; client kora; JWKS token validation
`services/ai