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
Share this project:

Updates