Inspiration
TAs and professors spend hours answering the same surface-level questions because the underlying foundational learning gaps are invisible. We wanted to build a diagnostic tool that treats the root cause of student confusion, rather than just treating the symptoms.
(Since we're all UCLA students) Prof. Duerschmid has done a lot of work to restructure CS 35L to improve student learning by creating the SE Book and all the tutorials. That creates a great place to go to practice individually, but when you get stuck on a level there isn't really a place to go besides Piazza or TA office hours. From there, it may take a while for the TA to understand your issue if you don't really understand it, so it takes time to resolve the issue. Since classes like CS 35L cover a lot of content (especially for a quarter), we wanted to minimize the time taken to diagnose an issue.
What it does
ClassPulse transforms fragmented Google Meet office-hour transcripts into a real-time semantic graph. It instantly traces a student's immediate question (the symptom) back to the specific foundational concept they missed (the root cause), giving educators quantitative data to course-correct lectures.
How we built it
We built a Next.js/React frontend (deployed on Vercel) with Google OAuth for seamless educator login. A FastAPI (Python) backend receives Google Meet transcripts and passes them to the Gemini API. Gemini acts as our cognitive engine, extracting concepts and relationships, which are then mapped and stored in a Neo4j graph database for visualization.
Challenges we ran into
Moving from a local development environment to a strict production build on Vercel caused unexpected crashes due to strict TypeScript type mismatches in our UI components (our IDEs and local deployments were a lot more forgiving, so we didn't realize this until we had to actually start deploying). Additionally, tuning the Gemini API to consistently output clean, structured node-and-edge JSON data for Neo4j took a lot of work. We were struggling with it being way too generic considering the Google Classroom that was uploaded.
Accomplishments that we're proud of
We successfully engineered a pipeline that takes completely unstructured, messy human conversation (audio transcripts) and converts it into a rigid, queryable mathematical structure (a graph database).
What we learned
We learned a lot about the difference between Next.js development servers and production environments. We also gained deep, practical experience architecting graph database schemas and managing secure OAuth flows and environment variables in production.
What's next for ClassPulse
Direct integration with learning management systems (Canvas/Blackboard) to automatically map a course's syllabus into the base graph, and maybe expanding the allowed tech stack from just Google Meets (like some sort of system for in-person discussions and office hours).
NOTE BEFORE TRYING
This project uses Google OAuth before allowing people to enter, so theoretically you're supposed to be whitelisted on our web app to use it. If you are able to get past the authentication, you have broken in...
The 'meet' branch has been switched to the default branch on the repo and is the same branch that is currently deployed.
Log in or sign up for Devpost to join the conversation.