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
/guidepage for readable long-form AI guides - Caching by topic and intensity to reduce repeated generation calls
- Deterministic schedule skeleton for reliability
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_EXHAUSTEDand occasional503 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
- fastapi
- gemini
- javascript
- node.js
- python
- react
- uvicorn
- vite
Log in or sign up for Devpost to join the conversation.