feat: initial project setup with roadmap, exercise data, and docs
Establish SneakySwole project foundation: - CLAUDE.md with project overview, stack, and development guidelines - 5-phase roadmap (scaffold, data layer, workout UI, logging, progression) - Exercise library YAML with 6 warmups and 20 exercises (form cues, tempo, sets) - User programs YAML with week 1/4 targets for Phillip and Daughter - Design doc capturing roadmap, data, and auth model decisions - Code guidelines, security standards, and .gitignore - Source workout spreadsheet (workout_plan_v2.xlsx) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
59
docs/roadmap.md
Normal file
59
docs/roadmap.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# SneakySwole Roadmap
|
||||
|
||||
## Phase 1: Scaffold & Infrastructure
|
||||
|
||||
Set up the project foundation — everything needed before writing features.
|
||||
|
||||
- FastAPI project structure (`app/` with routes, services, models, templates, static, utils)
|
||||
- Dockerfile + docker-compose.yaml (SQLite volume, port 8000, `.env` support)
|
||||
- Pico CSS dark theme base template (Jinja2 with `data-theme="dark"`)
|
||||
- `.env` / `.env.example` with admin credentials (`ADMIN_USERNAME`, `ADMIN_PASSWORD`)
|
||||
- `uv` for dependency management, `requirements.txt` with pinned versions
|
||||
- Structlog logging setup
|
||||
- Basic health check route (`/health`)
|
||||
|
||||
## Phase 2: Data Layer & Seeding
|
||||
|
||||
Build the database schema and seed it from YAML config files.
|
||||
|
||||
- SQLite schema via Alembic migrations
|
||||
- Tables: users, exercises, warmups, workout_days, user_exercise_programs, sets, progress_log
|
||||
- `config/exercises.yaml` — exercise library (name, muscle group, workout day, sets, tempo, form cues)
|
||||
- `config/user_programs.yaml` — per-user week 1/4 reps and weights for each exercise
|
||||
- Seed script that loads YAML into DB on first run
|
||||
- Admin user auto-created from `.env` credentials on startup (password hashed with bcrypt)
|
||||
- Two initial user profiles seeded: Phillip and Daughter
|
||||
- Service layer for all DB access (no direct queries from routes)
|
||||
|
||||
## Phase 3: Workout UI
|
||||
|
||||
The core user-facing experience — viewing workouts and managing profiles.
|
||||
|
||||
- Admin login (simple session-based auth, password hashed)
|
||||
- Profile switcher in nav (admin selects active user profile)
|
||||
- Admin can create and edit user profiles (name, weight, height, goals)
|
||||
- Workout day viewer — warmup routine + main exercises with full form cues
|
||||
- Exercise library browser (search/filter by muscle group, workout day)
|
||||
- All interactions via HTMX partials (no JSON APIs, no vanilla JS)
|
||||
|
||||
## Phase 4: Logging & Tracking
|
||||
|
||||
Enable workout logging so users can track what they actually did.
|
||||
|
||||
- Per-exercise logging: sets completed, reps, weight used, "felt easy?" toggle
|
||||
- Workout session model (date, user profile, workout day)
|
||||
- HTMX inline logging — log directly from the workout day view
|
||||
- Log history view per user profile
|
||||
- Edit/delete past log entries
|
||||
|
||||
## Phase 5: Progression & Analytics
|
||||
|
||||
Smart suggestions and visual progress tracking.
|
||||
|
||||
- Auto-progression engine based on log history
|
||||
- +1-2 reps/week, +5 lbs every 2 weeks
|
||||
- Deload detection at week 5 (-20% weight)
|
||||
- 4-week schedule view (calendar-style, shows which day maps to which date)
|
||||
- Progress dashboard per user profile
|
||||
- Per-exercise progress history and trends
|
||||
- Summary stats (total volume, streak tracking)
|
||||
Reference in New Issue
Block a user