Inspiration

College lectures are LARGE. A lot of us feel like attending lecture is pointless because we are left confused (either because we got distracted at some point during lecture, the lecturer didn't explain a concept intuitively, etc.) and the instructor has no live signal of which and how many students are lost or why. Students (like us !) often feel too afraid to raise their hand to address confusion, and questions are left unsaid. Often times this is not resolved, and we exit the lecture feeling like we learned nothing. We wanted to help instructors with real-time feedback and ways to help students so they feel like lecture is worth going to again.

What it does

Instructors create a lecture session by uploading lecture notes, resources, etc. Students join the session with a six-letter code, report how well they understand each concept (confused/partial/can_explain), and ask anonymous questions. The instructor sees live confidence counts, a color-coded concept knowledge graph, Claude-clustered misconceptions to review, and can open peer help rooms. They can also send live prompts and polls to gauge audience participation and confidence of other subjects as well, allowing them to tailor the current lecture and address misconceptions live.

How we built it

We began with ideation and design using Figma tools. We then used Devin to build a Next.js 16 App Router frontend (React, Tailwind, @xyflow/react) that talks to a Convex deployment that serves as the system of record, realtime layer, and AI orchestrator via reactive useQuery subscriptions and mutations. Claude runs and is scheduled in a Convex Node action (convex/claude.ts), calling the Anthropic API to infer concepts for lesson creation and cluster questions for live feedback. The design and frontend elements are created using Figma design + Figma agents.

Challenges we ran into

This was most of ours's first hackathon, so we came in a little lost. We struggled a lot with ideation, we wanted to produce a product with Convex that really focused on its real-time strengths. After we came up with the idea using figma, we were manually designing UX and had to really get into the mind of professors (which we aren't) to understand why professors don't know how students aren't engaged and how they would use it with the least effort possible. On the technical side, keeping invariants correct such as "one signal per participant/concept/phase" was all read-check-write inside Convex. We also had to figure out safeguards against Claude producing fabricated or duplicated concept IDs, which we re-validate with Zod.

Accomplishments that we're proud of

Especially since it's some of our's first hackathon, we're especially proud of creating an end-to-end fully functional app. We also conducted surveys of students from a wealth of colleges across the US here at CalHacks. We're proud of understanding how to use new services such as Convex and its functions to enforce privacy, since anonymity was important since we firsthand knowing that asking questions can be anxiety-inducing or embarrassing for a large chunk of students.

What we learned

We learned a lot about the process of creating an app end-to-end and how to plan our app, since most of us were new hackers. Beyond that, we learned how to use Convex as a single reactive backend without caches or websockets so one student's request instantly updates all the other data such as the instructor's graph. We also learned a lot about agentic workflows and how to utilize LLMs to best assist with our coding and helping implement our vision.

What's next

All the credential compromise (instructor secret and student tokens) is currently in localStorage, so we want to move that to a real auth provider with server side identity role checks. We also came up with more stretch features such as Claude-proposed concept links and peer-help rankings that could also be implemented. We would also want feedback from real instructors to help improve user experience, which would help greatly with improving the feel of our app.

Built With

  • claude
  • convex
  • devin
  • figma
  • lawrence
Share this project:

Updates

Submission history