Quazar

Inspiration

In middle school, I looked forward to the rare days when my teacher would fire up a kahoot session—those moments transformed even the driest history lesson into a fun interactive lesson. But they were few and far between, because crafting custom quizzes takes time that busy educators simply don’t have. When I saw how large language models could instantly generate content, I realized I could bridge that gap. Quazar was born from that spark: help teachers to spin up engaging, interactive quizzes in under a minute, instead of 20 minutes (per a single lesson), so every classroom can capture that same excitement.

What it does

1. Quiz Generation

Teachers enter a topic (e.g. “American Revolution”), add context (grade level, focus areas, objectives), and optionally upload a PDF or lesson outline.

Behind the scenes, a chain of LLM-powered agents validates inputs, researches key concepts, drafts and polishes timed multiple-choice questions, then regenerates any that don’t meet clarity or difficulty standards—all in under 60 seconds.

2. Host and Live Play

  • Start a game room with a join code
  • Questions stream in real time; players earn points for speed and accuracy
  • An on-screen leaderboard updates after each question and highlights top performers at the end

3. Explore Analytics

  • All response data (times, scores, difficulty) is saved automatically
  • View detailed charts in the Analytics panel
  • Click the AI Summary button to get a natural-language report (e.g. hardest questions, overall quiz performance)

How we built it

Quazar’s frontend is built with Next.js and React (ts), communicating with a FastAPI backend via Socket.IO and powered by a chain of OpenAI agents (utilizing the Agent framework) that validate inputs, research topics, and generate polished multiple‐choice quizzes in under 60 seconds. Post-game, real-time leaderboards and AI-driven analytics (including an “AI Summary”) turn raw response data into actionable teaching insights. For full architecture diagrams, setup steps, and source code, see our GitHub README.

Challenges I ran into

Multiplayer was hard to handle, since it required a complicated socketio setup, which was not easy, since socketio is not well documented in python. It was challenging to handle the host and the player logic, adding score, leaderboard, etc... was more challenging then I anticipated, and required a ton of testing.

Editing Questions and updating them was harder then I anticipated. Also, handling questions in the right order, based of the supabase table, and loading it correctly was also a challange I faced.

Accomplishments that I'm proud of

I'm proud of what the app has turned to, this will hopefully help teachers in the future to make their lessons interactive, and for students to have more fun learning.

  • handled multiplayer
  • created generation of quizzes with multiple agents reliably.
  • created an analytics panel, that can be summarized with a click of a button
  • added the ability to edit quizzes
  • had a ton of fun
  • got positive feedback from my friends and family

What I learned from Quazar

  • I learned to deliver a massive project in a short time, which was not easy, I planned every day.
  • I learned to use SocketIO in combination with fastapi, in order to provide multiplayer
  • I improved my ui skills and used framer-motion (for UI animations).
  • learned a few react hooks, such as react-hook-form (for handling forms, npm package)

What's next for Quazar

I hope this project will inspire others to do the same, and develop project that'll do good in the world, Quazar has a ton of potential to grow, and collaborate with schools and teachers. Also, there are a couple of features I would highly want to add in the future, such as integrating it with voice, browsing other quizzes, etc...

Built With

Share this project:

Updates