Inspiration

Lumicode was inspired by a problem many programming students face: watching a lecture can feel productive, but real understanding only happens when you start solving problems yourself. Students often spend hours going through videos, slides, and tutorials, then still struggle when they need to write code, answer exam-style questions, or connect topics together.

What it does

Lumicode turns lectures, videos, and course material into interactive coding labs. Students can generate revision questions, runnable coding challenges, quizzes, and topic-based practice from the material they are already studying.

It also helps students track their progress through topic maps, identify weaker areas before exams, and share useful labs with course communities. Instead of studying in isolation, students can build and reuse practice material around the same subjects, courses, or tutorials.

How I built it

I built Lumicode as a full-stack web app using Next.js, TypeScript, Supabase, OpenAI, Judge0, and Stripe.

OpenAI is used to understand lecture material and generate structured learning content. Judge0 powers runnable code execution, allowing students to test solutions across multiple programming languages. Supabase handles authentication, data storage, courses, labs, communities, and progress tracking.

A major part of the build was designing the lab generation pipeline. Lumicode needs to extract topics, generate accurate questions, create coding tasks, build test cases, produce expected outputs, and save everything in a way that can be reused for topic tracking and course progress.

Challenges I ran into

One of the biggest challenges was making sure generated questions actually matched the transcript or source material. It was important that Lumicode did not just create generic programming questions, but questions that reflected what the student had just studied.

Another challenge was code generation. For coding challenges, the generated solution, test harness, test cases, and expected outputs all need to work together. I also had to manage generation speed so that errors, retries, and regenerations would not create huge delays for students.

I also ran into reliability challenges with different types of videos. Some coding videos are structured tutorials, some are lectures, some are walkthroughs, and some jump quickly between concepts. Getting Lumicode to handle all of those consistently took a lot of iteration.

The topic map was another difficult area. As more labs are generated inside a course, Lumicode has to keep track of topics, merge duplicates, connect related ideas, and avoid breaking the course map over time.

Design consistency was also a challenge, especially making the app feel polished in both dark mode and light mode. Communities added another layer of complexity because shared labs need to feel useful, organized, and safe within the course experience.

Accomplishments that I'm proud of

I am proud that code execution works smoothly and feels like a real learning tool, not just a demo. Students can write code, run it against tests, and get feedback directly inside a generated lab.

I am also proud of the design. Lumicode has a clean interface, supports dark and light mode, and makes generated learning content feel approachable rather than overwhelming.

What I learned

I learned that building with AI is not just about generating text. The real challenge is turning AI output into structured, reliable, useful product experiences.

I also learned how important feedback loops are in education. Students need to know what they got wrong, what topic it belongs to, and what to practise next.

Technically, I learned a lot about code execution, test harnesses, prompt design, topic modelling, full-stack architecture, and building interfaces that stay usable as complexity grows.

What's next for Lumicode

Next, I want to work more closely with students to understand what they need most when studying programming. That means improving the quality of generated labs, making topic maps more helpful, and refining the practice experience based on real student feedback.

I also want to collaborate with schools, universities, and educators to bring Lumicode into real learning environments, helping more students turn the material they already have into practice that actually prepares them for exams, assignments, and real coding.

Built With

Share this project:

Updates