Semester Copilot
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 that 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 for Yuvth.raw
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.
Built With
- artificial-intelligence
- data-analytics
- fastapi
- framer-motion
- front-end
- large-language-models
- machine-learning
- natural-language-processing
- pdf-parsing
- playwright
- prompt-engineering
- python
- rag
- react
- rest-api
- shadcn-ui
- sqlite
- tailwind-css
- typescript
- ui
- ui-ux-design
- websockets
Log in or sign up for Devpost to join the conversation.