EdTech · Adaptive Learning · Living Lab

TopThi — An Adaptive Learning Loop for National High-School and Aptitude Exam Prep

TopThi turns every attempt into diagnostic data, then uses learning science to decide what each student should practice next. It is XO Edu Lab's living lab, running in production at topthi.vn.

Adaptive Learning Learning Analytics Exam & Question Bank Engine Grounded in learning science
See TopThi live
Domain
EdTech · High-school graduation & aptitude exam prep
Type
Web platform (API + Admin + Student Front)
XO's role
Full lifecycle: architecture, backend, admin, frontend, learning model
Tech
Laravel, Nuxt 3, Vue 3, MySQL, Redis, Elasticsearch
Status
Live · version 4 (since 09/2026)

The Problem

Doing more practice tests does not guarantee progress. Real personalization means knowing which skill a student is weak in, targeting practice there, and proving that score gains are real.

A total score doesn't show where a student is weak

A 6.5 doesn't tell a student what to practice next. Ability has to be measured per skill.

Random practice creates an illusion of progress

Redoing familiar tests pushes practice scores up but drifts into memorizing answers. Progress has to be measured on new questions.

A large question bank with no structure

Hundreds of thousands of questions with no skill tags, skewed difficulty labels and some wrong answer keys. Without clean data there is no personalization.

Analysis must never slow down submission

All ability computation runs in background queues. Students get results instantly; their skill profile updates right after.

Feature Map

Question Bank Engine

  • Skill map by Subject · Grade, aligned with the 2018 national curriculum and aptitude exams
  • AI skill tagging with human review
  • Difficulty calibrated from real attempt data
  • Automatic detection of suspected wrong answer keys, with student error reports and AI re-checks
  • Suspect questions are automatically excluded from generated sets
Live

Exam Engine

  • Fixed exams and per-student generated sets
  • All 2018-curriculum question formats: multiple choice, multi-part true/false, short answer, grouped reading
  • Instant automatic grading on submit
  • Server-verified exam timing, with an answer snapshot
Live

Adaptive Learning Engine

  • Elo/IRT ability model per student and per skill
  • Placement test weighted by exam blueprint
  • Daily interleaved practice at the right difficulty
  • Prerequisite skill graph: switches to foundations when they are weak
  • SM-2 spaced review scheduled from attempt results
Live

Learning Analytics

  • Predicted score with a confidence interval and the 3 topics most worth investing in
  • Per-skill ability profile for students and admins
  • Learning-outcomes report: pre/post periodic assessments, predicted-score error
  • D1/D7/D30 retention, exam traffic sources
Live

The TopThi Learning Loop

1
1. Practice
Students take real exams or a 15-question daily practice set. Every answer is logged as a learning event.
2
2. Diagnose
The system estimates ability per skill with an Elo/IRT model that corrects for guessing. Question difficulty is recalibrated nightly from attempt data.
3
3. Target practice
Practice prioritizes high-weight exam skills the student is still weak in. Each set mixes 3–4 topics, with difficulty chosen for roughly 70% correct.
4
4. Review on time, fix the misconception
Spaced review is scheduled per skill. On a wrong answer, the student immediately sees the misconception behind the option they picked.
5
5. Verify real progress
Every 7 days an assessment uses questions the student has never seen. Results feed back into Diagnose, and tomorrow's set is recomputed from there.

This is a loop: step 5 feeds back into step 2 (Diagnose), and tomorrow's practice set is recomputed from there.

The Science Behind It

Every TopThi design decision rests on a learning mechanism backed by research. Main sources: Make It Stick (Brown, Roediger, McDaniel, 2014) and How People Learn I & II (National Academies, 2000, 2018).

Testing effect

Roediger & Karpicke, 2006

Retrieving from memory makes learning stick better than rereading. Getting it wrong and then receiving feedback is also learning.

In practice

Students practice with short daily sets instead of rereading material. Every wrong answer becomes diagnostic data.

Spaced practice

Cepeda et al., 2006

Reviewing at intervals, just before forgetting, produces more durable memory than cramming.

In practice

An SM-2 review schedule for each skill of each student.

Interleaving

Rohrer & Taylor, 2007

Mixing problem types forces learners to identify which method applies, just like a real exam.

In practice

Each practice set mixes 3–4 topics, with at least 2 questions per topic.

Desirable difficulty & zone of proximal development

Bjork; Vygotsky

Work should be hard enough to demand effort, yet still achievable.

In practice

Question difficulty targets roughly 70% correct. When foundations are weak, the system switches to prerequisite skills.

Formative assessment & feedback

Black & Wiliam, 1998; Hattie & Timperley, 2007

Feedback works when it is specific, timely and points to the next step.

In practice

Students get a per-skill report, see the misconception under a wrong option, and know the 3 topics most worth their time.

Measurement & verification

IRT/Rasch; Bloom; Slavin

Ability and question difficulty sit on the same scale. Progress must be measured on new questions.

In practice

An Elo/IRT model with guessing correction, plus periodic assessments using questions the student has never seen.

TopThi optimizes for real progress, not the feeling of progress. Effective practice often feels harder and slower.

A personal practice set every day

Each time a student opens the Practice page, today's set is recomputed from their full attempt history. There is no pre-written 30-day plan.

  • 15 questions, 3–4 interleaved topics
  • Predicted score per subject
  • Prioritizes skills due for review
Technical Notes
Priority = skill weight in the exam × (1 − mastery). Question difficulty targets roughly a 70% chance of answering correctly. No question repeats within 14 days.

Review: know why you got it wrong

Every wrong option is linked to a typical misconception. A student who picks it sees the explanation right under the option they chose.

  • Per-option misconception notes
  • Report a question error
  • Verified explanations
Technical Notes
An AI-written explanation is only published when the AI independently arrives at the answer key stored in the database. Admins can review and remove it. Students rate each explanation 👍/👎.

Measuring progress on new questions

Periodic assessments draw from a separate question bank and exclude every question the student has seen, so score gains are not just familiarity.

  • Assessment every 7 days
  • Ability per skill
  • Outcomes report for admins
Technical Notes
The practice bank and the assessment bank are kept separate. The system includes a dose–response report (practice sets completed vs. assessment score gain) and an optional A/B mode.

System Architecture

Backend API
Laravel, REST API for Admin and Front
Student Front
Nuxt 3 SSR
Admin
Vue 3 + TypeScript: content management, tagging, question-quality queue
Data
MySQL, Redis, Elasticsearch with a Vietnamese analyzer
Learning Engine
Background queues: append-only learning event log, ability model, nightly calibration
AI
OpenAI API for skill tagging, answer-key checks and explanations

Backend

LaravelPHP 8Laravel QueueSanctum

Frontend

Nuxt 3 (SSR)Vue 3PiniaTailwindCSS

Admin

Vue 3TypeScriptTailwindCSS

Data & infrastructure

MySQLRedisElasticsearchSupervisorPM2

Integrations

OpenAI APIPayOSGoogle Login
"Our first model added mastery points for every question attempted, so a student guessing at random could still be rated "good". When we switched to an Elo/IRT model, many topics turned out to have been overrated. The lesson: without a skill map and clean data, AI cannot personalize anything — and that is where most of the effort goes."
— The XO Edu Lab Team