Inspiration
QuizzVerse was born from a simple frustration: studying is boring, and existing quiz tools are either static PDFs, behind paywalls, or require manual question writing.
As students, we've all experienced the same pain — spending hours making flashcards, searching for practice questions, or studying alone without any feedback. Traditional learning feels passive. You read, you memorize, but you never truly engage.
The idea hit during exam season. We were drowning in notes, PDFs, and textbooks, wishing there was a way to turn all that content into something interactive — something that felt less like cramming and more like a game. What if you could upload any document and instantly get a quiz? What if you could challenge your friends in real-time, turning study sessions into friendly competition? What if an AI could explain why you got something wrong?
That's when we discovered Groq Cloud's blazing-fast LLM inference. The possibility of generating high-quality, personalized quiz content in seconds — not minutes — was a game-changer. We realized we could build something that combines AI, gamification, and collaboration into one seamless experience.
QuizzVerse is the result: an AI-powered quiz platform where you can generate smart quizzes from any topic or document, play solo or compete in real-time multiplayer rooms, review your mistakes with AI-powered flashcards, and earn achievements along the way. It's studying reimagined — active, social, and actually fun
What it does
QuizzVerse is an all-in-one AI-powered learning platform that turns passive studying into an active, social, and rewarding experience.
Here's what you can do:
🧠 AI Quiz Generation — Pick from 24 topics (Science, Math, History, Programming, Mythology, Robotics, etc.) or type any custom topic. The AI generates a complete quiz with MCQ, True/False, and Fill-in-the-Blank questions in seconds. You control difficulty, question count, and timer.
📄 Document-Powered Quizzes — Upload a PDF, DOCX, or TXT file — lecture notes, research papers, or textbook chapters. The AI reads the content and creates a quiz tailored to your material. No manual question writing needed.
🎮 Real-Time Multiplayer Rooms — Create a room with a topic or document, share the 6-character code or QR invite, and challenge friends in live quiz battles. Each player progresses at their own pace with AI-scored answers, speed bonuses, streak tracking, and a live leaderboard. Optional video chat via LiveKit.
🤖 AI QuizzBot Chat — An AI tutor that answers questions, explains concepts, generates practice questions, and summarizes topics. Supports file upload (PDF, images, audio), voice recording with Whisper transcription, and markdown-formatted responses.
📚 Smart Flashcards & Review — Every wrong answer is automatically saved as a flashcard. Review them on the dedicated Review page with filters for difficulty and status. Flip to reveal the correct answer, explanation, and your original wrong answer — turning mistakes into learning opportunities.
🏆 Achievements & Gamification — 14 unlockable badges (First Steps, Perfect Score, Legend, etc.) with real-time popup celebrations, confetti animations, and sound effects. Progress bars show how close you are to the next milestone.
📊 Dashboard & Analytics — Track total quizzes, quizzes played, total score, and average score at a glance. Quick actions to generate quizzes, upload documents, or create rooms. Recent quizzes list with difficulty badges and delete options.
How we built it
QuizzVerse is built on a modern full-stack architecture designed for speed, scalability, and real-time interactivity.
Frontend — Next.js 16 + Tailwind CSS 4 The frontend uses Next.js 16 (App Router) with React 19 and TypeScript 5. The UI follows a custom dark-purple design system defined entirely in Tailwind CSS v4's @theme inline — glassmorphic cards, gradient text, glowing shadows, and 14 custom animations (float, shimmer, confetti, pulse-glow, etc.). Every component is mobile-responsive with touch-friendly targets.
Key frontend libraries:
Supabase JS for auth session management Lucide React for all icons qrcode.react for QR invite generation react-markdown + remark-gfm for rich AI chat responses LiveKit (@livekit/components-react + livekit-client) for video rooms Backend — FastAPI + WebSockets The Python backend uses FastAPI with 9 modular route files under /api/ — auth, users, quizzes, documents, rooms, chat, flashcards, achievements, and LiveKit. Each endpoint is auto-documented via Swagger at /docs.
WebSocket multiplayer is handled by a custom RoomManager class that maintains in-memory state per room — active connections, question progression, scores, streaks, and hints. Each player progresses independently through questions. The manager broadcasts real-time leaderboard updates and syncs via REST polling fallbacks for environments that don't support persistent WebSockets (e.g., Vercel serverless).
AI — Groq Cloud All AI features use Groq Cloud with the openai/gpt-oss-120b model for ultra-fast inference:
Quiz generation — Prompt-engineered to output valid JSON with MCQ, True/False, and Fill-in-the-Blank questions. Response parsed into structured quiz + question records. AI hints — Per-question subtle hints that avoid revealing the answer. Title generation — Pre-generates short quiz titles before full generation to avoid Vercel 10s timeout. Audio transcription — whisper-large-v3 via Groq for voice recording in chat. QuizzBot — Conversational AI tutor with profile-aware context and markdown responses.
Challenges we ran into
- Real-time multiplayer on a serverless budget Vercel serverless functions don't support persistent WebSocket connections. But multiplayer rooms need real-time communication — scoring, leaderboard updates, question progression. We couldn't just give up on serverless deployment.
Solution: We built a dual-mode architecture. A custom WebSocket RoomManager handles real-time gameplay locally, managing per-player state — current question index, scores, streaks, hints used, and answer tracking — all in-memory for zero latency. On Vercel, a REST polling fallback syncs player lists and detects quiz activation every 3 seconds. The frontend seamlessly switches between modes without the user noticing.
- Individual question pacing in multiplayer In most quiz platforms, the host controls progression — everyone sees the same question at the same time. We wanted each player to answer at their own speed, but this meant the server had to track independent state for every connected player simultaneously.
Solution: The RoomManager maintains a dictionary per room mapping each user to their current question index, current question ID, hint usage count, and answer status. When a player sends next_question, the server fetches their next question on-demand, caching full question data lazily. Players who finish early see a "You're Done!" screen while others continue. The players_done set tracks completion, and only when all connected players finish does the server broadcast quiz_end. This required careful state synchronization across 7 parallel dictionaries and a race-condition-free disconnect handler.
Accomplishments that we're proud of
Real multiplayer, real-time, real fun. Two players on different continents, different speeds, different questions — but the same room, same leaderboard, same competitive energy. We built a custom WebSocket protocol with 14 message types, per-player state tracking across 7 synchronized dictionaries, and a REST polling fallback that makes it work even on Vercel serverless. Players feel the tension of a live quiz without the complexity of a dedicated game server.
A design system that hits above its weight class. Every pixel of QuizzVerse — the glassmorphic cards, the floating particle animations, the gradient text that shifts, the breathing timer at 5 seconds, the confetti burst when you unlock a badge — was built from scratch with Tailwind CSS v4. No component library, no design system copy-paste. 14 custom keyframe animations, a fully custom dark theme, and mobile-responsive everything. It looks like a production app because we treated it like one.
What we learned
AI is not magic — it's engineering with guardrails. Prompting an LLM to generate quiz questions sounds simple until your model returns markdown-wrapped JSON with extra fields and wrong types. We learned that production AI requires a full pipeline — prompt engineering, response validation, fallback chains, and graceful degradation. The system prompt alone went through 12 iterations before quiz generation hit reliable enough for daily use.
State management across 7 parallel dictionaries is fragile. The WebSocket RoomManager tracks connections, names, questions, scores, hints, and completion — all in-memory. We learned that in-memory state is incredibly fast and incredibly dangerous. A missed cleanup, a stale disconnect, and the whole room breaks. The real lesson: every write needs a matching cleanup path, and every dictionary needs a consistent key structure.
Real-time features are a different beast. REST APIs are forgiving — request, response, done. WebSockets are stateful, persistent, and unforgiving. We learned that reconnection logic, heartbeat detection, and stale-state handling aren't "nice to have" — they're the foundation. Without the 2-second auto-reconnect and the intentionalClose flag, our multiplayer rooms would crash every time a player switched WiFi.
What's next for QuizzVerse
Voice-based AI chat. The chat already supports audio transcription via Whisper, but the AI only responds with text. Next: add text-to-speech for AI responses, voice-only conversation mode, and a "study buddy" mode where QuizzBot quizzes you verbally while you walk, commute, or cook.
PDF-to-flashcard pipeline. Upload a textbook chapter → get a full quiz + flashcard deck + summary notes — all in one flow. The document parser today only generates quizzes. The next version extracts key concepts, definitions, and formulas automatically and maps them to flashcards with spaced repetition scheduling.
Classroom mode for educators. A teacher dashboard where educators create rooms for their classes, track per-student performance across sessions, identify weak topics across the whole class, and generate targeted review quizzes based on the collective mistakes. The multiplayer room already has the infrastructure — this extends it into an LMS-style experience.
Built With
- fastapi
- gpt-oss-120b
- groq-cloud
- livekit
- lucide
- next.js
- postgresql
- pypdf
- python
- python-docx
- qrcode.react
- react
- react-markdown
- supabase
- supabase-auth
- tailwind-css
- typescript
- vercel
- websockets
- whisper

Log in or sign up for Devpost to join the conversation.