Overview

Personal project, Mar 2026 – Present

An LLM-based adaptive study coach built around one design choice: keep the teaching logic in the model, not in hardcoded scheduling rules. The model decides what to teach, when to quiz, how to score partial answers, and when to revisit a concept. The code manages storage, interfaces, and guardrails around those decisions — changing how the system teaches mostly means editing prompt modules, not rewriting backend logic.

View on GitHub →

What I Built

The system combines a custom spaced-repetition model, a topic-and-concept knowledge graph, and a modular prompt layer where separate skill files define teaching, quizzing, and knowledge reorganisation behaviors.

What started as a Discord bot is now a multi-surface product sharing a single learning pipeline: Discord for day-to-day use, a FastAPI backend for programmatic access, and a React browser app for reviewing progress and exploring the knowledge graph.

Reliability

The harder part was making an LLM-driven system dependable enough to trust with real notes and study history. I added structured-output validation, confirmation flows for state-changing actions, automated backups, and runtime-editable preferences. I also wrote backend tests around review flows and output contracts, and frontend tests for the main app surfaces.

Technologies

Python · discord.py · FastAPI · React · TypeScript · SQLite · Qdrant · D3.js · LLM prompt design · Spaced repetition · REST API

Discord bot interaction Web interface — knowledge graph Web interface — topic tree
Discord bot and web interface screenshots.

Updated: