This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
I built StudyBuddy, an adaptive AI study planner for a student who found that fixed study schedules were difficult to follow when assignments, deadlines, and unexpected work came up.
Instead of creating a plan once and expecting the student to follow it perfectly, StudyBuddy can adapt the remaining schedule when something changes.
I enter a study goal, available daily study time, deadline, and strong and weak topics. StudyBuddy then generates a personalized plan.
The important part comes when a task is missed.
Instead of simply moving the missed task to the next day and potentially overloading the schedule, the student can explain why they missed it — for example, because of a surprise assignment, exhaustion, sickness, or lack of time.
StudyBuddy then adapts the remaining plan around the situation while preserving completed work and respecting the student's remaining available time.
The idea is simple:
The student shouldn't have to adapt to the study plan. The study plan should adapt to the student.
I built this for a friend who was struggling to keep up with rigid study schedules because of changing college work and deadlines.
Demo
The demo shows the complete flow:
Create a personalized plan → Complete a task → Miss a task → Give a reason → Adapt the plan → See the updated schedule
Code
How I Built It
StudyBuddy is built with:
- Next.js
- TypeScript
- Tailwind CSS
- Firebase Firestore
- Ollama
- Gemma 3 4B
The core AI runs locally using Gemma 3 4B through Ollama.
I deliberately kept the architecture simple. The application calculates the valid study slots on the server and gives those constraints to Gemma rather than asking the model to independently calculate dates and scheduling limits.
For the initial plan, Gemma receives the student's profile, available study slots, strengths, weaknesses, and goal, and generates a structured study plan.
For adaptation, the model receives the missed task, the reason it was missed, the student's remaining available time, completed work, and future pending tasks.
The server then validates the model's response before applying the changes.
This means the AI is responsible for making the plan useful and adaptive, while the application remains responsible for enforcing the scheduling constraints.
Completed tasks are preserved, missed tasks remain in the history, and only future pending work is reorganized.
Why Does Open Innovation Matter?
For StudyBuddy, using an open-weight model made local AI inference practical.
Gemma 3 4B can run locally through Ollama, which means the core planning and adaptation logic does not depend on sending every AI request to a closed hosted API.
That gave me more control over the model, the prompts, the structured output, and how the application validates AI-generated plans.
It also makes experimentation easier. I can change the model or run a different open-weight model without redesigning the entire application around a proprietary API.
For a personal study tool, this approach is especially useful because it makes local experimentation possible while keeping the AI layer under the developer's control.
Prize Categories
- Best Use of Gemma — Gemma 3 4B is the core AI model used for personalized study-plan generation and adaptive replanning.
Top comments (0)