This platform redefines the university study experience by leveraging Large Language Models to automatically organize a student's entire semester and gamifying the learning process through a live, competitive matchmaking system.
University students waste countless hours navigating half a dozen disorderly PDF syllabi and class outlines to figure out what they need to study and when.
Our platform solves this by:
- Instantly parsing every syllabus a student uploads, as well as directly pulling syllabi from Nebula to parse.
- Generating a master chronological timeline of deadlines.
- Automatically querying Nebula APIs to assign difficulty ratings based on historical grade distributions.
- Using Gemini 2.5 Pro to create a granular, day-by-day study plan.
And the best part? Students can queue up in a live, Ranked Matchmaking system against other students taking the exact same class, competing in AI-generated quizzes over the exact material they are currently learning in lecture that week.
This is a monolithic repository containing two main segments:
A high-performance Python FastAPI application connected to MongoDB, hosted on MongoDB Atlas.
- Authenticates users securely via Clerk JWTs.
- Features an abstracted
GeminiClientutilizing bothgemini-2.5-flash(for fast data extraction and quiz generation) andgemini-2.5-pro(for deep study-plan reasoning). - Houses the entire HTTP-polling Multiplayer Matchmaking engine, complete with live status tracking, cross-referenced syllabus topic generation, and a localized per-class Elo system.
- See
/api/README.mdfor local setup instructions!
A modern, responsive Single Page Application built with React, Vite, and Tailwind CSS.
- Leverages Clerk for rapid, secure user authentication.
- Parses PDF and DOCX files entirely client-side (using
pdf.jsandmammoth) before sending pure text to the backend, drastically reducing server costs. - Dynamically renders chronological timelines, daily study plans, and live global/local Elo leaderboards using React Router.
- Features an isolated Matchmaking Arena (
/#match) where users can queue, view live poll updates, take their AI-generated quizzes, and watch their rank go up in real time!
To run the full stack locally, you will need two terminal windows:
Terminal 1 (Backend API)
cd api
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reloadTerminal 2 (Frontend React App)
cd webapp/clerk-react
npm install
npm run dev(Ensure you have populated the .env files in both directories according to their respective requirements!)
