DEV Community

Shreysh
Shreysh

Posted on

Study Buddy: A Local Gemma Study Planner I Built for a Friend

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

Study Buddy is a study planner I built for my friend [REAL NAME], who has [SUBJECT] exams on [DATE]. [One sentence on their real problem, e.g. "They had a huge syllabus and didn't know where to start."]

You paste in a syllabus and the topics you're scared of. Gemma reads it, splits it into topics, and rates each one for difficulty and hours. A Python scheduler then builds a day-by-day plan that finishes before the exam. A dashboard shows daily workload, progress by subject, and a topic map of difficulty vs hours. You can also export the plan to a calendar (.ics).

Demo

Code

📚 Study Buddy

A study planner I built for my friend Riya, who has Physics exam on 20 Oct.

  • Gemma 3 (via Ollama) reads a messy syllabus and splits it into topics
  • Plain Python schedules them, so the hours always add up
  • Dashboard shows workload, progress, and topic difficulty
  • Exports to a calendar file (.ics)
  • Runs 100% locally. No API keys, no cloud, no cost.

Run it

  1. Install Ollama and run ollama pull gemma3:4b
  2. pip install -r requirements.txt
  3. streamlit run app.py



How I Built It

Gemma 3 (4B)** running locally through "Ollama" reads the messy syllabus and returns structured topics as JSON.

  • Plain Python does the scheduling. I kept the maths out of the LLM so the hours always add up and nothing is scheduled after the exam.
  • Streamlit + Altair provide the interface and dashboard charts.
  • Gemma's output is clamped to sane ranges (0.5-4 hours, difficulty 1-5), because small models sometimes return odd numbers.

Why Does Open Innovation Matter?

  • Private: [NAME]'s syllabus, weak spots and schedule never leave my laptop.
  • Free and offline: no API key, no bill, and it works with bad Wi-Fi during exam season.
  • Swappable: I can switch Gemma sizes or another open model by changing one line (MODEL = "gemma3:4b").
  • Where it beat a closed API: [one honest observation, e.g. speed, or what the 4B model got wrong]

My Agent Session

I built this with Claude's help. Here is the full conversation, including the bugs and fixes

Prize Categories

Best Use of Gemma

Top comments (0)