Inspiration

Computing students have plenty of ways to learn a new technology, but the information often feels scattered. Learning Companion was built to help students find a starting point, see how concepts connect, and understand what they know well enough to apply.

What it does

Students explore a topic tree across ten technology areas, choose what interests them, or ask for topic suggestions. They learn through source-backed visual lessons with diagrams, examples, citations, and an AI tutor. A three-question check gives feedback, while the tree and home screen show their progress and what they might revisit.

How we built it

Built using 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 new lessons, the server finds and checks public references, saves relevant passages, and uses them to generate cited content.

Challenges we ran into

The biggest challenge was directing lesson generation toward content that would be clear and useful for students. We had to define what each step should teach, make sure the diagrams and explanations could render properly, and require usable sources for the lesson and its questions. If generation fails those checks, implement proper guardrails instead of failing.

Accomplishments that we're proud of

Seeing the skill tree come to life was a highlight. Students can grow it around their interests, select a topic, and move into a generated visual lesson with sources, examples, and an understanding check. Getting that journey to work together felt like a real step beyond a static course catalogue.

What we learned

AI can help create a flexible learning path and viable lesson content, but its output needs clear boundaries. Showing where lesson content came from is as important as generating the lesson itself.

What's next for Learning Companion

Visual tasks in quizzes so students can show understanding beyond multiple-choice answers. Another feature could be streaks and social features, but would need further testing on whether they encourage meaningful learning rather than just daily clicks. A vector database is a later consideration, not a tool for chunking itself. The app already splits sources into passages; a vector database would help retrieve relevant passages by meaning.

Built With

Share this project:

Updates

Submission history