Inspiration
Any student could relate to the insane workload of college. Not only that, but everything is scattered across different websites and subscriptions. ClassroomCompanion is here to fix that. Instead of storing flashcards in one place, and exam dates in another, you can have all of that in one place with our smooth, easy to use app.
What it does
Classroom Companion lets you record lectures with live multilingual transcription, then use AI to generate summaries, flashcards, and practice exams from your recordings, PDFs, or YouTube videos. While recording, you can take side notes, watch your lecture transcribed in real time, ask AI questions mid-lecture for instant answers, see domain-specific jargon automatically detected and displayed as chips with one-line definitions, and optionally pin your slide deck so AI follows along with the lecturer in real time. Smart date detection automatically adds mentioned exams and due dates to your built-in calendar, which syncs to your device. Everything stays organized with a built-in file system for managing your courses and notes.
How we built it
ClassroomCompanion is built on a React.js frontend and an Express.js backend, with MySQL handling persistent storage for user data, course organization, lecture transcripts, and scheduled important dates. Version control was managed with Git. The core of the app is a real-time lecture pipeline powered by Deepgram, which streams live audio from the user's microphone and returns low-latency transcriptions via WebSocket, keeping the experience seamless during active lectures. For video content, we integrated AssemblyAI to handle transcription of YouTube videos, using yt-dlp to extract audio before passing it through the transcription pipeline. Transcripts are then passed to Google Gemini to generate concise, structured summaries that students can then study from.
Challenges we ran into
One of our biggest challenges was coordination, keeping everyone aligned on both the codebase and the vision for the app. Managing version control across the team required establishing solid Git practices, staying disciplined about branching, and resolving merge conflicts without disrupting each other's work. Beyond the technical side, we also discovered that each team member had slightly different mental models of how the app should look and behave. Small differences in assumptions about features or user flows can lead to very different outcomes, so we had to communicate constantly and reconcile those details early before they compounded into bigger inconsistencies.
Accomplishments that we're proud of
- We built a complete end-to-end learning platform with many features and tools: folders/notes, recording, viewer, AI generation, and study workflows, all connected in one app.
- Shipped live lecture intelligence: real-time transcription pipeline with provider split (Deepgram for English, Gladia for non-English) plus in-session tools like Session Q&A and Live glossary.
- Utilized AI APIs to create powerful tools to enhance the learning process: practice exams, flash cards, and summaries -Great teamwork, communication, Git branching, and delegation allowed us to be extremely productive and collaborative
What we learned
We learned how to work effectively as a team under a tight deadline and how important it is to plan out the architecture of a project before jumping into code. We also learned how to work on separate features at the same time without breaking each other's work. Most importantly, we learned how to communicate early and often to make sure everyone was on the same page, which saved us a lot of headaches down the road.
What's next for Classroom Companion
Going forward, we hope to deploy Classroom Companion for students around campus to test out and provide feedback on. Our goal is to push beyond a basic MVP and build something that is truly production ready, polished, and useful for everyday student life.
Built With
- deepgram
- docker
- express.js
- gladia
- google-gemini
- mysql
- nginx
- node.js
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.