Inspiration
Studying from a textbook chapter or messy lecture notes is slow — you don't really know what you don't know until you hit an exam. Most study tools either make you write your own quiz questions or give you generic flashcards that have nothing to do with your actual material. I wanted something that takes whatever you're actually learning from and turns it into a quiz built specifically around it.
What it does
StudyForge takes a topic you type in, notes you paste, or a PDF you upload — and generates a personalized quiz from that exact material using AI. After you answer, it grades your responses, gives specific feedback on each question explaining the "why" in plain language, and summarizes which concepts you're weak on so you know exactly what to review next.
How we built it
The backend is built with Flask, using Groq's Llama 3.3 for both quiz generation and grading. I designed strict JSON schemas in the system prompts so the AI's output is always parseable and consistent. PDF uploads are handled with pypdf for text extraction. The frontend is vanilla HTML/CSS/JS — no framework — with three input modes (topic, notes, PDF), a live quiz-taking view, and a results screen. It's deployed on Vercel as a serverless Python app.
Challenges we ran into
Getting the AI to reliably return valid, structured JSON for both quiz generation and grading took a lot of prompt iteration. The bigger challenge was deployment: my first architecture stored quiz data in a server-side dictionary between the generate and grade requests, which worked locally but broke completely on Vercel's stateless serverless functions — each request can hit a different function instance with no shared memory. I redesigned the grading flow to be fully stateless, with the full quiz data round-tripping through the client instead of being looked up server-side. I also hit a dependency conflict between the groq Python package and httpx that crashed the app on import, which I fixed by pinning compatible versions.
Accomplishments that we're proud of
Getting a full AI-generated-quiz-to-graded-feedback loop working end-to-end, solo, in a few days — including handling three different input types (topic, notes, PDF) through the same AI pipeline, and successfully debugging a serverless deployment issue that required rethinking the app's architecture.
What we learned
I learned how to design prompts that reliably produce structured, parseable output from an LLM rather than free-form text, and I learned the practical difference between a traditional server and a stateless serverless environment — and how that difference changes architectural decisions like where state can live.
What's next for StudyForge – AI Personalized Quiz Generator
Persistent quiz history so users can track improvement over time, adaptive difficulty that adjusts based on past performance, and a flashcard mode as an alternative study format.
Log in or sign up for Devpost to join the conversation.