Study app for learning advanced topics in depth, from step-by-step worked answers to breakdowns of lecture handouts and YouTube lectures, with quizzes that show what actually stuck.

StudyMate landing page — “Learn deeply. Revise clearly.”
StudyMate home — Ask & Learn, Handout Analyzer, YouTube Tutor and Quiz Generator modes
StudyMate YouTube Tutor summarising a system design lecture section by section, with timestamps
StudyMate YouTube Tutor in light mode, watching the video itself when captions are unavailable

StudyMate gives students four ways to study: ask a question and get a step-by-step answer with rendered math, upload a PDF or photo of their notes and ask about it, paste a YouTube lecture and ask what happens at a given timestamp, or turn any of it into a quiz that is marked with explanations. Sessions are saved to Firestore and cached in the browser, and a Progress page tracks streaks, quiz averages and study habits. I built a Go (Gin) API that streams Gemini answers over server-sent events and falls back across models when one is overloaded or out of quota. When YouTube blocks transcript fetching, Gemini watches the video directly, clipping to the three minutes around a timestamp when one is asked about. Every API call needs a Firebase ID token and is rate limited per user, and link fetching refuses private network addresses. The Go server also serves the React build, so the whole app ships as one container on Cloud Run that scales to zero, deployed through GitHub Actions with the Gemini key held in Secret Manager.

Technologies

  • Go
  • Gin
  • Gemini
  • React
  • Vite
  • Firebase Auth
  • Firestore
  • Server-Sent Events
  • KaTeX
  • Framer Motion
  • Cloud Run
  • Secret Manager
  • Docker
  • GitHub Actions