Case study
AI LMS
AI LMS turns a topic into a full learning path. Claude generates the module structure and multiple-choice quizzes; the app scores answers, tracks mastery per topic, and runs a live tutor over a WebSocket so learners can ask follow-ups without leaving the lesson.
Architecture
Key decisions & tradeoffs
EMA mastery instead of raw scores
Each quiz submission nudges an exponential-moving-average mastery value per topic rather than overwriting it. Recent performance weighs more, but one bad quiz doesn't wipe progress — and the next generated module can target the lowest-mastery topics.
Realtime tutor over WebSocket
The tutor runs on a WebSocket channel so answers stream in and the connection stays open across a lesson, instead of a request per question.
UUID-based learners, no auth (tradeoff)
Learners are identified by a UUID with no login — fast to try, but state isn't portable across devices. Auth is the first thing I'd add for a real deployment.
What I'd do differently
I'd add real auth, cache Claude's generated curricula to cut token cost and latency on repeat topics, and add spaced-repetition scheduling on top of the mastery signal.