Inspiration
Students often read lecture slides passively without knowing what to focus on, and existing quiz tools either generate low-quality questions or rely on manual input. We wanted to build something that turns unstructured learning material directly into an active learning experience.
What it does
QuizGen converts PDFs, PPTs, and images into structured concept maps and then generates high-quality quizzes from them. It extracts key ideas, prioritizes them by importance, and produces MCQs with explanations, a timer-based quiz UI, and instant evaluation.
How we built it
We built a Next.js + TypeScript frontend with a two-view flow (upload → quiz). The backend is FastAPI with LangChain orchestration and a two-call LLM pipeline: first for concept extraction from parsed slides (PDF via pdfplumber, PPT via python-pptx), and second for quiz generation and review. Structured outputs are enforced using Pydantic models. Everything is configurable via environment-based settings.
Challenges we ran into
The hardest challenge was ensuring quiz quality and avoiding hallucinated or trivial questions. A single LLM pass produced inconsistent results, so we redesigned the pipeline into two stages with strict role separation. Another challenge was reliably extracting meaningful structure from PPT/PDF files while preserving hierarchy and context.
Accomplishments that we're proud of
We built a full end-to-end system that transforms raw academic content into structured learning material with minimal user input. The two-stage LLM design significantly improved question quality, and the frontend provides a smooth, real-time quiz experience with progress tracking and instant feedback.
What we learned
We learned that LLM performance improves dramatically with structured intermediate representations instead of raw prompting. Separating “understanding” and “generation” into different calls leads to more reliable outputs. We also gained experience in prompt engineering, document parsing, and building full-stack AI pipelines.
What's next for QuizGen
We plan to add support for images (OCR + diagram understanding), spaced repetition for long-term retention, adaptive difficulty based on user performance, and collaboration features for classroom use. We also want to expand to multi-language support and integrate with LMS platforms like Canvas and Moodle.
Built With
- fastapi
- langchain
- nextjs
Log in or sign up for Devpost to join the conversation.