DEV Community

D Reddy
D Reddy

Posted on

We built Cognify at Hacktoberfest Hack Day, Coimbatore 2026 πŸš€

Most online courses keep going whether you've understood the last lesson or not. Finishing a video isn't the same as understanding it, and when you're stuck you usually get the same explanation again.

So our team, Under Ctrl, built Cognify: an adaptive learning platform that turns a learning goal into a personal course and changes the course based on how you actually answer.

How it works
🎯 Describe what you want to learn, e.g. "Python for data analysis"
🧭 A short diagnostic finds what you already know
πŸ•ΈοΈ Cognify builds a skill graph, a map of concepts and the prerequisites between them
πŸ“š Each lesson is generated from at least 3 cited sources
πŸ§‘β€πŸ« A built-in tutor answers your questions, gives hints before full solutions and accepts voice input
πŸ“Έ For written questions you can upload a photo of your handwritten working, like a maths derivation, and get it graded
πŸ” If two of your answers point to the same misunderstanding, Cognify gives you a quick check first. Only if you get the check wrong does it add a review lesson, and it shows you why

What makes it different
The skill graph isn't just a visual roadmap. It keeps the evidence from your answers: what you got wrong, what changed in your path and the reason for each change. A single wrong answer never reshapes your course. The model suggests changes; our own rules decide whether they happen.

How we built it
βš™οΈ Next.js 16, React 19, TypeScript and Tailwind CSS
πŸ€– Gemma 4 (Google's open model) through the Gemini API: it plans the graph, writes lessons and questions, grades short answers and tutors
πŸ—„οΈ Supabase Auth and Postgres, with row-level security so learners can't edit their own grades
πŸ” Tavily web search for sources, with a curated fallback catalog
βœ… Zod checks every piece of model output against a schema before anything is saved
πŸ§ͺ Automated tests cover the full learner journey without network calls

What we learned

  • Model output is a proposal, not a decision. Checking it and keeping the decisions in our own code made the system predictable and testable.
  • LLMs and JSON have funny edge cases. LaTeX like \frac is a valid JSON escape, so maths was silently turning into control characters until we caught it.
  • Finishing a lesson and mastering a skill are different things. Keeping them separate made our dashboard honest.

πŸ”— Try it: https://cognify-under-ctrl.vercel.app
πŸ’» Code: https://github.com/p-art-dheev/Under-Ctrl
πŸŽ₯ Demo: https://youtu.be/c5Z_SZ1gWnY

Huge thanks to my teammates [@Dalli Krishan Preetham Reddy], [@Irala Charuhas Reddy], [@Vatturu Pardeev] and [@A Prithvi], and to INIT CLUB, iDEA CLUB and Major League Hacking for organising.

Hacktoberfest #MLH #Hackathon #GemmaAI #EdTech #NextJS #Supabase #OpenSource #BuildInPublic

Top comments (0)