Inspiration

Late-night study sessions struggling with boring, passive materials inspired us to rethink learning. We wanted to make studying feel like a competitive, engaging game - turning notes into interactive trivia battles.

What it does

Noteify lets users upload study guides in text, Markdown, or PDF format. It uses AI to generate high-quality question-answer pairs, which power flashcards, timed quizzes, and Quizbowl-style (against bots) trivia battles complete with real-time buzzers and ELO rankings.

How we built it

We combined React and Tailwind CSS for the frontend, FastAPI for the backend, and integrated LLMs via OpenRouter and LangChain to generate questions. We used PostgreSQL and Supabase for data and file storage, Celery for task queuing, and WebSockets for real-time PvP features. Authentication is handled with Firebase Auth, and Redis manages the leaderboard.

Challenges we ran into

Ensuring AI-generated questions were accurate and relevant required prompt tuning and filtering. Parsing PDFs, especially scanned or poorly formatted ones, was difficult. Designing a fair ELO ranking system tailored for educational trivia took multiple iterations.

Accomplishments that we're proud of

We successfully built a full end-to-end pipeline from note upload to AI question generation to trivia battles. The system reliably parses multiple file types and produces usable question-answer pairs ready for study modes. We also integrated AI-driven content generation that adapts to diverse study materials.

What we learned

We gained valuable experience in prompt engineering for the API, text preprocessing, and ranking algorithms. We also learned that combining AI with gamification can make studying more engaging, but only if content quality is carefully controlled.

What's next for Noteify

We plan to add AI-generated question sets from topic prompts without uploads, improve difficulty estimation to refine ELO scoring, expand question types (multiple choice, fill-in-the-blank), develop classroom/team modes, and create bots with adjustable difficulty levels.

Built With

  • fastapi
  • langchain
  • openrouter
  • react
  • tailwind
Share this project:

Updates