ElizirFit AI — Personalized Fitness, Built around you. Offline-first Flutter app with a Ghana-specific food & product database.
# ElizirFit AI
**Personalized Fitness, Built around you.**
Offline-first fitness & nutrition tracker built for Ghana — Ghanaian food database, barcode scanning for local packaged products, workout logging, and activity tracking. Full spec: `docs/spec.md`.
## Stack
- Flutter (Dart) — single codebase, iOS + Android
- Riverpod — state management
- sqflite (SQLite) — local, offline-first database
- Supabase — hosted backend, added once the local app works
## Status: Build Order step 4 — Activity logging with MET-based calories ✅
- [x] Flutter project scaffold
- [x] SQLite schema (`lib/core/database/database_helper.dart`) — all 9 tables from the spec
- [x] Data models (`lib/core/models/`) — one per table, with `toMap`/`fromMap`
- [x] Ghana food dataset seed — 87 real dishes across all 8 categories, auto-seeded on first launch
- [x] Food search, food detail, meal logging, Nutrition Home with daily totals
- [x] Exercise library seed — 68 exercises across all 7 categories, auto-seeded on first launch
- [x] Exercise Library screen — searchable/filterable by category, also used as an in-workout exercise picker
- [x] Active Workout — add exercises, log sets (reps/weight/RPE), delete sets, finish workout
- [x] Workout Home, Workout Detail, Personal Records (Epley-formula estimated 1RM)
- [x] Activity Home — log walk/run/cycle/other activities, MET-formula calorie estimate, daily total, delete a logged activity
- [x] `HomeShell` — bottom navigation; Nutrition, Workout, and Activity are live, Progress and Profile are "coming soon" placeholders
- [ ] Barcode/QR scanning + product dataset (Build Order step 5)
- [ ] Supabase auth + sync (Build Order step 6)
## Getting started
```bash
flutter pub get
flutter run
```
On launch you should see a "ElizirFit AI — DB Check" screen listing all 9 tables (`users`, `foods`, `products`, `meal_logs`, `exercises`, `workouts`, `workout_sets`, `activity_logs`, `water_logs`). If any are missing, something went wrong in `database_helper.dart …