Inspiration

Studying often fails before learning even begins: students collect notes, syllabi, and assignments, but struggle to turn them into a practical plan. We wanted to build something that removes that planning friction.
StudyBuddy was inspired by one question: “What if messy study material could instantly become a clear, personalized weekly roadmap?”

What it does

StudyBuddy turns raw learning input (notes, syllabus text, assignment content, and uploads) into an actionable study system:

  • Extracts and organizes topics from imported content
  • Builds a personalized weekly study plan
  • Generates task-level AI study guides with resources, note-sheet style explanations, and practice prompts
  • Creates flashcards for active recall
  • Creates quizzes with explanations
  • Adapts workload by intensity level (relaxed, normal, intense)

In short, it converts unstructured content into a guided learning workflow.

How we built it

We built StudyBuddy as a full-stack web app:

  • Frontend: React + Vite for a fast, responsive UI
  • Backend: FastAPI for API orchestration and generation flows
  • AI layer: Google Gemini API for topic extraction, guide generation, flashcards, quizzes, and plan enrichment
  • State management: Centralized study store for topics, plan, flashcards, quiz state, and user actions
  • Data persistence: JSON-backed local storage for topics and generated content
  • UX architecture:
    • Deterministic schedule skeleton for reliability
    • Optional AI enrichment for richer study guidance
    • Dedicated /guide page for readable long-form AI guides
    • Caching by topic and intensity to reduce repeated generation calls

Challenges we ran into

We hit both product and engineering challenges:

  • Model variability: AI responses were valid but inconsistent in shape, especially for quiz JSON
  • Quota/rate limits: Frequent 429 RESOURCE_EXHAUSTED and occasional 503 UNAVAILABLE
  • Environment issues: path/CWD confusion (backend vs frontend folders), uvicorn import errors, and dependency startup issues after folder moves
  • Frontend-backend sync: ensuring “clear progress” actually deletes persisted backend state
  • Usability: making long AI guides readable and structured instead of generic wall-of-text output

Accomplishments that we're proud of

  • Built an end-to-end learning workflow from import to study execution
  • Added robust retry and fallback behavior so the app stays usable under API instability
  • Implemented per-topic/per-intensity caching for generated study assets
  • Improved guide quality from generic prompts to structured note-guide output
  • Shipped dedicated guide navigation (/guide) for focused reading experience
  • Connected weekly tasks directly to actionable study modes (guide, flashcards, quiz)

What we learned

  • Reliability matters as much as generation quality in AI products
  • Prompt engineering must be paired with output normalization and defensive parsing
  • Deterministic scaffolding + optional AI enrichment is a strong hybrid architecture
  • UX details (navigation, formatting, pacing) can decide whether AI output is truly useful
  • Fast iteration across backend + frontend is critical when behavior changes are tightly coupled

What's next for StudyBuddy

  • Add source citations with confidence indicators for each generated guide
  • Support richer imports (PDF parsing quality upgrades, OCR improvements, multi-file bundles)
  • Add user accounts, cloud persistence, and cross-device sync
  • Introduce spaced-repetition scheduling and mastery tracking over time
  • Add analytics dashboard for progress, weak-topic detection, and adaptive recommendations
  • Improve collaborative features (shareable plans, peer study packs)
  • Expand offline-first behavior and lower-latency generation pipelines

Built With

Share this project:

Updates