-
-
Study Buddy home screen — enter any CS topic and subject to begin your AI-powered study session.
-
Planner Agent generates a structured 3-subtopic learning roadmap with estimated time for each concept.
-
Question Generator Agent loads subject skill file and creates an adaptive question at current difficulty.
-
Evaluator Agent scores your answer and gives a hint if wrong. Never reveals the full answer directly.
-
Session summary showing average score, topics covered, and final difficulty level reached.
-
Multi-agent architecture — three specialized agents coordinated through a Flask backend API layer.
Inspiration
I am a third year BSCS student in Pakistan. Most of my classmates study Operating Systems, Data Structures, and DBMS without any access to tutors or personalized guidance. We rely on past papers, YouTube videos, and hoping someone in the group chat knows the answer. I wanted to build something that acts like a personal tutor for any CS student who needs one, available anytime, completely free.
What it does
Study Buddy is a three-agent AI system that runs a complete personalized study session for BSCS students.
You enter a topic and subject. Then:
Planner Agent breaks your topic into 3 focused subtopics with estimated study time for each, giving you a clear roadmap before you study a single concept.
Question Generator Agent loads a subject-specific skill file for your subject using progressive disclosure. A separate SKILL.md exists for Operating Systems, Data Structures, and DBMS. The agent loads only the one it needs, then generates a targeted practice question at your current difficulty level: easy, medium, or hard.
Evaluator Agent checks your answer, scores it out of 100, gives you specific feedback, and drops a hint if you were wrong. It never reveals the full answer directly. Based on your score it adjusts the difficulty for your next question automatically. Score above 70 means difficulty increases. Score below 70 means it decreases.
At the end of the session you get a full summary showing your average score, every topic covered, and how far your difficulty progressed.
How we built it
The entire project was built using vibe coding in Antigravity IDE. Every file was generated through natural language prompts. No code was written manually.
The architecture has three layers:
Three Python agent files (planner.py, question_generator.py, evaluator.py) each powered by Google Gemini 2.5 Flash
A Flask backend (app.py) with three API endpoints that orchestrate the agents in sequence and pass session state between them
A pure HTML/CSS/JS frontend with 5 sequential screens: Start, Learning Plan, Question, Feedback, and Final Summary
Subject-specific SKILL.md files in separate skill folders handle the progressive disclosure pattern so each agent stays focused and the context window stays lean.
Challenges we ran into
The biggest challenge was API quota limits. Gemini free tier runs out fast when three agents are firing per question. We had to switch API keys mid-build and manage quota carefully during testing and recording the demo.
Model compatibility was another blocker. Not every model version works with every API key. We found that gemini-2.5-flash worked consistently across all agents and stuck with it.
CORS errors between the frontend and Flask backend took time to debug but were resolved by properly configuring Flask-CORS.
Accomplishments that we're proud of
Getting three agents to coordinate smoothly through a Flask backend and deliver a real interactive browser experience felt like a big moment. The adaptive difficulty system works exactly as designed. Scoring above 70 visibly increases the difficulty badge on the next question.
The guardrail on the Evaluator Agent is something we are genuinely proud of. No matter how the question is framed, the agent never gives the full answer. Only hints. This was a deliberate design decision for pedagogical reasons.
Building this entire system through vibe coding in under one day without writing a single line of code manually is the accomplishment that surprised us most.
What we learned
Multi-agent coordination is harder than it looks. Each agent needs to know exactly what it receives, what it returns, and how errors are handled. Getting clean JSON back from Gemini consistently required careful prompt engineering.
Progressive disclosure is a genuinely useful pattern. Loading skill context only when needed kept the agents sharp and responses fast.
Vibe coding is a real skill. Knowing how to describe what you want precisely enough for an AI to build it correctly takes practice and clear architectural thinking.
What's next for Study Buddy
- Add more subjects: Calculus, Computer Networks, Software Engineering
- Add a MCP server for persistent progress tracking across sessions so students can pick up where they left off
- Add a weak topic detection feature that flags which concepts a student keeps getting wrong
- Deploy to a public URL so any student can access it without running it locally
- Add voice input so students can answer questions by speaking
Built With
- antigravity
- css
- flask
- googleadk
- googleaistudio
- googlegemini
- googlegeminiapi
- html
- javascript
- python
Log in or sign up for Devpost to join the conversation.