AI Study & Quiz Assistant
Turn any study material into an instant, interactive quiz — powered by AI.
Live demo: ai-study-quiz-annalysit.vercel.app
💡 Inspiration
Studying from dense notes, PDFs, or lecture material is passive — reading something once rarely means you've actually learned it. ""Active recall"" (testing yourself) is one of the most effective study techniques, but manually writing quiz questions from your own notes is tedious and something most students skip entirely.
As a student myself, I wanted a tool that removes that friction: drop in your notes, get a quiz instantly, and actually find out what you know versus what you're only recognizing.
⚙️ What it does
AI Study & Quiz Assistant lets you upload a PDF or paste raw study text, and instantly generates a 5-question multiple-choice quiz grounded strictly in that material.
- Take the quiz right in the browser
- Get scored automatically
- See a full breakdown of every question — including an AI-generated explanation for the correct answer
- Retry the same quiz or generate a fresh one from new material
🛠️ How I built it
Frontend
- React + Vite
- Custom plain-CSS design system (no framework) — designed first in Figma, then implemented component by component
Backend
- Node.js + Express
- Handles both PDF uploads (via
multer+pdf-parse) and pasted text through a single endpoint
AI
- Google Gemini API, using its structured
responseSchemaoutput feature so the model reliably returns quiz data in a strict, predictable JSON format
Deployment
- Backend → Render
- Frontend → Vercel
- Connected via an environment-configurable API URL
Built solo over 6 days, working day-by-day: backend + AI integration → PDF support → quiz-taking UI → results/scoring → full UI redesign in Figma → deployment.
🚧 Challenges I ran into
Getting Gemini to reliably return valid, well-structured JSON was trickier than expected — early attempts using prompt instructions alone would occasionally return malformed or explanation-wrapped JSON. Switching to Gemini's native responseSchema parameter solved this by enforcing structure at the API level rather than hoping the model followed instructions.
I also hit environment-specific networking issues — the app worked locally but broke when tested via GitHub Codespaces' forwarded URLs, since localhost doesn't resolve the same way across devices. Solving this meant moving the API URL into an environment variable (VITE_API_URL) so it could be swapped between local, Codespaces, and production without touching code.
🏆 Accomplishments I'm proud of
Going from an empty repo to a fully deployed, working full-stack AI application in 6 days, solo, for my first hackathon.
I'm especially proud of the final UI — early passes leaned too heavily into generic "AI-generated" visual patterns (glowing gradients, oversaturated purple). I deliberately pulled back to a clean, restrained, single-accent design that looks intentional rather than templated.
📚 What I learned
- How to design a strict JSON contract between an AI model and application code, and enforce it with schema validation rather than trust
- The importance of environment-aware configuration when developing across multiple contexts (local, cloud IDE, production)
- How much a deliberate, restrained design system improves perceived quality compared to defaulting to trendy visual effects
🔮 What's next
- Adjustable quiz length and difficulty settings
- Support for more input formats (DOCX, TXT, EPUB)
- Quiz history so users can track progress over time
- Spaced repetition, resurfacing previously missed questions
Built With :
"react", "vite", node.js, express, javascript, css, multer, pdf-parse, google-gemini-api, vercel render, figma.
Built With
- ai
- css
- education
- edutech
- gemini
- javascript
- machine-learning
- node.js
- productivit
- quiz
- react
Log in or sign up for Devpost to join the conversation.