ข้ามไปยังเนื้อหา

FitTrack

สร้าง FitTrack แอปบันทึกการออกกำลังกายแบบ mobile-first ด้วย backend Python/FastAPI หนึ่งตัวบน Supabase (managed Postgres + Auth), แอป mobile บน Flutter, และ web companion บน Svelte — สอง client แชร์ API เดียวกันที่ป้องกันด้วย JWT

Introduction

ทำไมต้อง FitTrack, คอร์สนี้จัดโครงสร้างยังไง และเมื่อจบแล้วคุณจะได้สร้างอะไรบ้าง Open →

Setup & Tooling

ติดตั้ง Python (uv), Supabase CLI, Flutter และ Node แล้ววางโครงสร้างโปรเจกต์ Open →

Supabase Foundation

provision Supabase, ออกแบบ schema และ migration ของ Postgres แล้วเปิด Auth Open →

FastAPI Foundation

สร้างแอป FastAPI แบบ async, config, โครงสร้าง และเชื่อมต่อไปยัง Supabase Postgres Open →

Auth (Supabase JWT)

verify JWT ที่ Supabase ออกให้ใน FastAPI แล้วสร้าง dependency get_current_user Open →

Domain Model

ออกแบบ exercise, workout และ set ด้วย Pydantic, SQLAlchemy และ repository Open →

Exercises API

สร้าง CRUD ของ exercise catalog ทั้งแบบ shared และที่ user สร้างเอง Open →

Workouts API

บันทึก workout session พร้อม set ทั้งชุด แล้วอ่าน history กลับมา Open →

Progress & Stats

รวมค่า personal record, volume ตามช่วงเวลา และ trend ของแต่ละ exercise Open →

Flutter — Foundation

ตั้งค่าแอป Flutter ด้วย Riverpod, Supabase auth และ API client Open →

Flutter — Tracking

สร้าง UI สำหรับ tracking บน mobile: เริ่ม workout, บันทึก set, ดู history Open →

Svelte Web Companion

ส่ง dashboard บน SvelteKit ที่อ่าน API เดียวกัน Open →

Testing

เขียน test ครอบ backend ด้วย pytest และแอป Flutter ด้วย widget test Open →

Deployment

containerize API, รันบน Supabase ที่ hosted แล้ว ship ทั้งสอง client Open →

Wrap-up

ทบทวนสิ่งที่สร้าง, trade-off ต่าง ๆ และจะพา FitTrack ไปต่อทางไหน Open →