Project Info
Inspiration
We built Semester Copilot because we were tired of the usual semester burnout. Juggling deadlines across different PDF syllabuses, missing important messages in WhatsApp study groups, and manually calculating our attendance to see if we could skip a morning class was taking up too much time. Managing college shouldn't be harder than the classes themselves. We didn't want another generic to-do list; we wanted an app that actually helps us plan and warns us before we make mistakes.
What it does
Semester Copilot brings your academic life into one dashboard. It focuses on four main areas: 1. The Smart Skip Engine Instead of just tracking attendance, it tells you if it's actually safe to skip. We built a logic engine that calculates a risk score \(R\) by looking at how frequently a topic appears in past exams (\(F_{exam}\)) and its weight in the syllabus (\(W_{topic}\)): \[ R = w_1 \cdot F_{exam} + w_2 \cdot W_{topic} - (A_{target} - A_{proj}) \] If your projected attendance (\(A_{proj}\)) drops below 75%, or if the risk score for tomorrow's lecture gets too high, the app gives you a warning that you shouldn't skip. 2. Classroom Chat We added a WebSocket-based chat room for each subject. If your study group is stuck on a concept, you can type @AI in the chat. We hooked this up to Artificial Intelligence, which reads the specific PDF notes for that class and drops the answer directly into the chat, along with a link to the exact page it got the info from. 3. AI Notes Studio You can upload a raw lecture PDF, and the app extracts the text to automatically generate summaries, structured notes, flashcards, and quick practice quizzes based on the professor's material. 4. Exam Prep To help with finals, we wrote a script that parses past question papers. It calculates the probability \(P(T_i)\) of a specific topic \(T_i\) showing up based on past years \(Y\): \[ P(T_i) = \frac{1}{Y} \sum_{k=1}^{Y} \text{Count}(T_i, Y_k) \] It uses this to generate a heat map so you know exactly which chapters to prioritize during revision.
How we built it
We wanted to build something that didn't look like a standard, clunky hackathon prototype. Frontend: We used Next.js and Tailwind CSS. We utilized Shadcn UI for our base components and added Framer Motion for some clean transitions. Backend: We built the API using Python (FastAPI) and used a local SQLite database to keep things lightweight and fast for the MVP. AI & RAG: We used Artificial Intelligence LLM's. For the document retrieval, we chunk the uploaded PDFs, generate embeddings, and use standard cosine similarity to find the most relevant context for the user's chat query: \[ \text{Similarity}(Q, V_d) = \frac{Q \cdot V_d}{|Q| |V_d|} \] Real-time: We implemented standard WebSockets for the live study group chats.
Challenges we ran into
Getting the RAG pipeline to stop hallucinating was our biggest headache. At first, AI kept bringing in outside internet knowledge instead of strictly using the university syllabus we uploaded. We spent hours adjusting our chunk overlap parameters and tweaking the system prompts to force the AI to cite its sources correctly. On the frontend, building the 3-panel layout for the Classroom AI was tough. Making it responsive so the sidebars slide out cleanly on mobile (under 768px) without triggering React hydration errors or breaking the CSS Grid took a lot of trial and error.
Accomplishments we're proud of
Getting the Smart Skip Engine to actually work was a huge win. Tying together a student's attendance math, the parsed syllabus topics, and past exam data into a single "safe to skip" alert was a really satisfying engineering problem to solve. We're also really happy with the UI. It looks clean, runs fast, and feels like an app we would actually use every day.
What we learned
We learned that UX matters just as much as the AI backend. If the app feels slow or the UI is confusing, a smart LLM doesn't save it. Adding simple things like loading skeletons and clickable citation links made the app feel much more usable. We also got hands-on experience using Playwright for automated browser testing to make sure our demo flow didn't break at the last minute.
What's next
Our next immediate step is to connect the app directly to university portals like Canvas or Moodle via their APIs, so schedules and PDFs import automatically without the user having to upload them manually. We'd also like to expand the study rooms to include voice chat for easier collaboration.
🎓 Semester Copilot
Your Semester has a Digital Twin. A proactive academic command center powered by AI Intelligence.
Team: Yuvth.raw
Built for: [OpenAI Build Week Hackathon]
(https://youtu.be/-SBBLuw9USc)
🚀 The "Try It Out" Quickstart
We built Semester Copilot with a local SQLite database so you can easily test the entire AI pipeline on your own machine without relying on external cloud databases.
Prerequisites
- Node.js (v18+)
- Python (3.10+)
- A Working AI API Key
1. Start the FastAPI Backend
Open a terminal and navigate to the apps/api folder:
cd apps/api
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Add your AI API Key
# Create a .env file in the apps/api folder and add:
# AI_API_KEY=your_key_here
# Run the server
uvicorn app.main:app --reload
2. We as a Team Developed this project by using the help of ChatGPT 5.6 model, and to test the frontend, improve features, and fix issues we used Codex as the AI agent
Analysis
View
Metric
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- FastAPIClaimed
6 of 7 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
432 KB
Source files
76
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
prudhvi1611/Semester-Copilot
86 files · 21.7 MB · @ b187cd8
Structure
Interface
36 files · 42%Screens, components and styles rendered to the user.
API & routing
21 files · 24%Request entry points: routes, handlers and controllers.
Application logic
4 files · 5%Domain rules, services and shared utilities.
Data & schema
8 files · 9%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript51%
- Markdown30%
- Python18%
- CSS1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
apps/web/package.json
npm · 25- @base-ui/react
- @types/canvas-confetti
- canvas-confetti
- class-variance-authority
- clsx
- framer-motion
- lucide-react
- next
- next-themes
- react
- react-dom
- react-pdf
- shadcn
- sonner
- tailwind-merge
- tw-animate-css
- +9 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.