Inspiration

I teach Python and Scratch to students through an international nonprofit, and I also work as a code coach at theCoderSchool. Over and over, I noticed something strange happening with my students. A kid would make a mistake in one assignment, I would help them fix it, and a week later they would make what looked like a completely different mistake in a totally different project. But the more I paid attention, the more I realized these weren't actually different mistakes, but they were the same misunderstanding, just in a different costume. A student who messed up a loop boundary in one project would mess up array indexing in another project, and nobody, including the student, ever connected the dots, so I started wondering what it would look like if an AI could actually catch that pattern the way I was starting to catch it myself, just faster and across way more students than I could ever track by hand, and that question became Office Hours.

What it does

Office Hours is not a coding tutor, does not write code for students, and it does not just point out bugs. Instead, it watches how a student codes over time and across multiple submissions, and figures out the underlying conceptual misunderstanding that causes a pattern of mistakes, even when those mistakes look completely unrelated on the surface. Once it finds that pattern, it explains it in plain language with real evidence pulled from the student's own code, and then it builds a tiny personalized practice exercise, written in that same student's coding style, aimed directly at fixing the root cause instead of just patching one bug. I also built a Teacher View, since I am a teacher myself and I wanted a way to see which misconceptions were showing up across my whole class, not just one student at a time.

How I built it

I used Codex to build almost the entire application. It built the React and Vite frontend, the Express and SQLite backend, the database schema, and the full interactive dashboard and diagnostic map UI. GPT 5.6, called live through the API, is what actually powers the intelligence behind the product, which all took me about 3 weeks during the hackathon period. One call analyzes a student's current code alongside their past submissions and identifies a misconception with supporting evidence, and a second call generates the personalized practice exercise based on that diagnosis and the student's own coding style. I made sure the detection logic only reports a misconception when there is real evidence of a pattern, not just a single isolated mistake, because the whole point of this tool falls apart if it starts guessing

Challenges I ran into

Almost everything that could break, broke at some point. I hit permission errors installing Codex, ran into module import mismatches between ES modules and older CommonJS syntax, had a background scan animation that silently failed to render, and spent a long stretch chasing a 401 error that turned out to be an unsaved file the whole time. I also ran into a very real constraint that I did not expect, which is that some AI platforms require billing or an age minimum I could not meet on my own, so I had to problem-solve around that too. Debugging without being able to see the file system directly, just working through the terminal step by step, taught me a lot about patience and about actually reading error messages carefully instead of guessing, so it was worth it at the end!

Accomplishments that I am proud of

I am proud that this is not just a demo that looks nice; it is a fully working pipeline. A student can submit code, get a real diagnosis backed by evidence from their own history, and receive a real personalized exercise, all powered by an actual working AI system end to end. I tested it with a few of my own students by having them submit real code they had struggled with, and it was exciting to watch it catch a pattern I had noticed in their work myself, without me telling it what to look for.

What I learned

I learned how much of building a real product is not the exciting first version, but it's the debugging, the patience, and the willingness to keep going when something breaks for the fifth time in a row. I also learned a lot about how to design AI prompts carefully so the model gives honest, evidence based answers instead of just making things up to sound confident

What's next for Office Hours

I am excited to use this and share this project with other students and educators, and I want to expand the range of misconceptions it can detect beyond the ones I started with, and eventually let students actually type and submit their answers to the generated exercises so the loop closes completely. I would also love to bring the Teacher View into a real classroom setting, including my own, so programming educators and teachers can get a genuine bird's eye view of where their students are conceptually stuck, not just which lines of code are wrong.

Built With

Share this project:

Updates