Learning Companion
An AI learning app that lets students grow a topic tree around their interests and turn each topic into a source-backed visual lesson with an understanding check.




Project Details
About the Project
Ever wanted to learn a new tech concept, but ended up with ten tabs open and no clear starting point?
I built Learning Companion to give students a topic tree they can explore and grow around their interests. Each topic can lead to a source-backed visual lesson, with diagrams, examples and an AI tutor for questions along the way.
Rationale
Computing students have plenty of ways to learn a new technology, but the information often feels scattered. I wanted to help students find a starting point, see how concepts connect, and understand what they know well enough to apply.
How It Works
Students explore a topic tree across ten technology areas, choose what interests them, or ask for topic suggestions. Each lesson uses a step-by-step format with diagrams, explanations, worked examples, common mistakes and citations.
A three-question understanding check then gives feedback on what students can answer independently and what they may need to revisit. Their progress stays visible in the tree and on the home screen, so learning feels connected rather than scattered.
Under the Hood
The frontend uses React, Vite, TypeScript and Tailwind CSS, with an Express API and Supabase for sign-in and saved progress. Google Gemini suggests topics and generates lessons, questions and tutor replies.
For a new lesson, the server finds and checks public references, splits them into passages and saves the relevant ones, then uses them to generate cited content. If generation fails those checks, guardrails handle it rather than letting the lesson break.
Project Satisfaction
I’m most proud of seeing the skill tree come to life. Connecting topic discovery, lesson generation, an AI tutor and visible progress made the app feel like one learning journey, a real step beyond a static course catalogue.
Key Takeaway
The hardest part was getting generated lessons to be clear and to work in the visual lesson player. I learnt that AI can help create a flexible learning path, but its output needs clear boundaries, and showing where lesson content came from matters as much as generating it.
Areas for Improvement
With more time, I would add visual tasks to the quizzes and a review flow with a fresh batch of questions. I’d also test whether optional streaks or social features encourage real learning rather than daily clicks, and whether a vector database retrieves better passages for lessons.