Why I built UNLOCK I started with a simple question: What if getting something wrong could tell us how someone needs to be taught? Students can have access to the same textbook, notes, videos and explanations as everyone else and still struggle to understand a concept. Sometimes the problem isn't a lack of information. It's the way the information is being presented. That became the idea behind UNLOCK — a learning tool that doesn't just give a student the correct answer. When a student makes a mistake, UNLOCK tries to understand the possible confusion behind that mistake and explain the concept differently.

How I built it I built UNLOCK as a web application using HTML, CSS and JavaScript on the frontend and Node.js with Express on the backend.

For the AI layer, I used Featherless AI with GLM-5.2. The backend sends the student's lesson, selected language and accessibility barrier to the model and receives a structured learning response.

The most important part of the project is the adaptive learning loop:

Learn → Check → Detect → Reteach differently → Retry

After the initial explanation, the student answers generated questions. If they get something wrong, UNLOCK sends the question, the student's answer and the correct answer back to the AI. The model identifies a possible misunderstanding and generates a new explanation, analogy and retry question. I also built support for English, Hindi and Marathi, with options for language and dense-material barriers.

What I learned The biggest thing I learned was that building an AI application isn't just about getting an AI response. The difficult part is designing what information the AI receives, deciding what the application should do with the response, and making the result useful to an actual user. I also learned a lot about connecting a frontend to a backend API, handling structured AI responses, debugging JSON errors, managing environment variables, and deploying a Node.js application publicly.

Challenges The adaptive learning feature was the hardest part. At one point, the AI returned responses that weren't valid JSON, which caused the backend to crash when it tried to parse them. I had to add response cleaning and error handling before the adaptive explanation could work reliably. I also had several frontend JavaScript errors while connecting the quiz, scoring system and adaptive explanation together. Debugging these taught me to test each part of the learning loop instead of assuming that a feature was working because another part worked. Finally, deploying the project introduced another challenge: the application worked on my laptop but needed to work on a public server with a dynamically assigned port and a securely stored API key. I configured the Express server to use the hosting platform's port and kept the Featherless API key in environment variables instead of exposing it in the repository.

What UNLOCK means to me The idea behind UNLOCK is simple: A wrong answer shouldn't always mean "here is the correct answer." Sometimes it should mean "let's try explaining this differently."**

UNLOCK is still a hackathon prototype, but I want to take the idea further by making learning more personalized over time — not by giving students more content, but by helping them find a way into the content that works for them.

Built With

Share this project:

Updates

Submission history