Skip to content

studyhaxer/capstone-edu-platform

Repository files navigation

AI-Powered Educational Platform — Capstone Retrospective

Author: Hafiz Atta ur Rahman (@studyhaxer) Project: AI-Powered Educational Platform for Umar Science Academy Chunian Duration: Days 20–33 of a 60-day Python/FastAPI roadmap Live at: usachunian.com


1. The Goal

Build a production platform where teachers create courses and upload notes, students register and enroll, and AI handles the heavy lifting — summarizing lessons and (post-launch) generating quizzes. The bigger goal underneath it: prove, with a real shipped product, that 7+ years of PHP/WordPress freelance experience could translate into a modern Python/FastAPI + React skill set worth relaunching a dev career on.

2. Stack

Layer Choice
Backend FastAPI
Database PostgreSQL (Supabase)
Frontend React
Auth JWT, role-based (teacher/student)
AI Groq API — llama-3.3-70b-versatile
Hosting Railway (backend) + Supabase (DB)

3. Timeline at a Glance

  • Day 20 — Capstone kickoff: models, relationships, constraints
  • Day 21 — Auth routes (46/50)
  • Day 22 — Course CRUD (47/50)
  • Day 23 — Lesson CRUD + enrollment (48/50)
  • Day 24 — AI lesson summarizer integrated (Groq, after OpenAI/Gemini dead ends)
  • Day 25 — pytest + TestClient (46/50)
  • Day 26 — React Register page — hard enough to trigger a roadmap slowdown to one feature/day
  • Day 27 — Login + JWT storage, role-based redirects
  • Day 28 — Teacher Dashboard (42/50)
  • Day 29 — Student Dashboard (47/50)
  • Day 30 — UI Polish across all components (44/50)
  • Day 31 — PostgreSQL migration + env config
  • Day 32 — Backend deploy to Railway
  • Day 33 — Frontend deploy + live launch on usachunian.com

4. Hardest Bugs, Best Lessons

  • Email validation gap (Day 21): correctly pushed back when a bug was misidentified — the real fix was EmailStr instead of str in the schema. A good reminder that the reported symptom and the root cause aren't always the same thing.
  • State leaking between forms (Day 28): the lesson form kept old course data when toggled between courses — fixed with a dedicated toggleLessonForm helper. A classic React state-management lesson.
  • Silent second-call bug (Day 29): a cache guard in handleSummarize quietly blocked the Re-Summarize button from ever firing twice — the kind of bug that looks like a UI issue but is really a logic issue.
  • Two real deployment bugs (Day 19/32): Railway → Supabase over IPv6 (fixed via the Session pooler URL) and passlib breaking under Python 3.13 (fixed by dropping to direct bcrypt calls). Both are the unglamorous kind of problem that only shows up outside localhost — and both are now documented for next time.
  • AI provider pivot (Day 24): OpenAI wanted payment, Gemini had no usable free quota — landed on Groq's llama-3.3-70b-versatile instead. A useful reminder that the "best" model on paper isn't always the one that ships.

5. What Changed Along the Way

Day 26 was hard enough to prompt a real decision: slow the roadmap down to one feature per day. That single call is probably why Days 27–33 landed as cleanly as they did — scored reviews stayed in the 42–48/50 range the whole way through, instead of drifting down under rushed pressure.

6. Skills Actually Gained

  • FastAPI: routing, dependency injection, JWT auth, role-based access control
  • SQLAlchemy models with real relationships, constraints, and cascade behavior
  • React: forms, dashboards, state management, auth flows, accessibility basics
  • Testing: pytest + TestClient
  • Real deployment: Railway + Supabase, environment config, IPv6/dependency gotchas
  • Working with an external LLM API in a production feature (not a toy demo)
  • Shipping discipline: score → fix → document → publish, every single day

7. What's Next

  • AI-generated MCQ quizzes from lesson content
  • File upload support for notes/PDFs
  • Real usage from real students and teachers at Umar Science Academy Chunian

8. Closing Note

Thirty-three days ago this was a plan. Now it's a live platform teachers and students can actually use. That gap — between roadmap and running system — is the whole point of building in public.

About

AI-powered educational platform — FastAPI backend, PostgreSQL, JWT auth, OpenAI-generated lesson summaries & quizzes. Days 20-36 capstone build.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors