QuizForge: Self-Learning Quiz Maker
A full-stack quiz platform that turns markdown files and YouTube transcripts into mixed-format quizzes with AI grading, contextual chat, and performance analytics.
I learn best by testing myself, but making good quizzes is tedious. So I built QuizForge — a tool that ingests learning material and generates quizzes from it, then tracks how I’m doing over time and surfaces the areas where I’m weakest.
The Flow
You feed it sources: upload markdown files or paste YouTube URLs (it pulls transcripts via yt-dlp). Then it generates a mixed-format quiz — multiple-choice and open-ended questions — using any OpenAI-compatible LLM. Take the quiz, get graded immediately, and see where you went wrong.
Open-ended answers get rubric-based evaluation, not just keyword matching. The LLM grades against the source material, which means it can assess whether you understood the concept even if you phrased it differently than the original text.
The Interesting Parts
Contextual AI chat during quizzes. While you’re working on a question, you can open a chat that has full context of the current question, the source material, and your answer so far. It acts as a tutor — nudging you toward understanding without just giving the answer away.
Trouble quizzes. The system tracks which questions you’ve missed across all attempts. Hit a button and it generates a targeted practice quiz from your weak spots. This is the self-learning loop: take a quiz, identify gaps, practice specifically on those gaps, repeat.
Analytics dashboard. Accuracy over time, per-quiz breakdowns, retake trends, and a CSV export for the data nerds. Chart.js renders the visualizations.
The Stack
It’s a full-stack TypeScript app: Express backend, Alpine.js + Tailwind frontend, SQLite via Prisma for persistence. The LLM integration is provider-agnostic — it works with local llama.cpp, Groq’s free tier, or any OpenAI-compatible endpoint. There’s a mock mode for development so you can test the full flow without burning tokens.
Why Not Just Use Anki
Anki is great for rote memorization. This is aimed at conceptual understanding — taking dense material and forcing myself to engage with it actively rather than passively reading. The open-ended questions and AI grading make the difference. Writing out an explanation of a concept is a fundamentally different learning mode than picking from four options.