Track your workouts with the most intelligent rest timer on the market. Offline-first. No BS.
Phase: Sprint Planning Complete - Ready for Implementation
Stories: 29/29 (100%)
Architecture: Clean Architecture + BLoC
Target Launch: Q1 2026
- Flutter SDK 3.0+
- Dart 3.0+
- Android Studio / VS Code
- iOS: Xcode 14+
- Android: Android SDK 21+
# Clone the repo
git clone <repo-url>
cd PFT
# Install dependencies
flutter pub get
# Run code generation (after implementing models)
flutter pub run build_runner build --delete-conflicting-outputs
# Run the app
flutter runThe app will automatically:
- Create SQLite database (7 tables)
- Seed 52 exercises
- Load 6 workout templates
- Initialize settings
Pattern: Clean Architecture (Uncle Bob)
State Management: BLoC (flutter_bloc)
Database: SQLite (sqflite)
DI: GetIt
lib/
βββ core/ # Shared utilities, DI, services
βββ data/ # Models, datasources, repository implementations
βββ domain/ # Entities, repository interfaces, use cases
βββ presentation/ # BLoCs, screens, widgets
See ARCHITECTURE.md for details.
- ARCHITECTURE.md - Architecture deep dive
- SPRINT-PLANNING.md - 4 sprints breakdown
- IMPLEMENTATION-READINESS-REPORT.md - Readiness assessment
- PRD - Product Requirements Document
- Stories Index - All 29 user stories
- Roadmap - Feature roadmap
- β Setup project + Clean Architecture
- β Database + seed data
- β Story 2.1: Exercise Database
- β Story 2.2: Search/Filter Exercises
- Story 1.1-1.3: Workout CRUD
- Story 3.1-3.3: Active workout session
- KPI: Set entry < 10 seconds
- Story 4.1-4.5: Rest timer (auto-start, notifications, background)
- Story 5.1-5.2: History
- Story 6.x: Stats & PRs
- Story 7.x: Settings
- Story 8.x: Onboarding
- Final polish + alpha release
Total: 42 days β MVP Ready
| KPI | Target | Status |
|---|---|---|
| Set entry time | < 10s | π― Target |
| Exercise list load | < 100ms | π― Target |
| Search/filter | < 50ms | π― Target |
| History load | < 300ms | π― Target |
| Animations | 60 FPS | π― Target |
| Test coverage | > 80% | π― Target |
# Run all tests
flutter test
# Run with coverage
flutter test --coverage
# View coverage (requires lcov)
genhtml coverage/lcov.info -o coverage/html
open coverage/html/index.htmlCoverage Target: >80%
flutter_bloc- State managementsqflite- Local databaseget_it- Dependency injectionuuid- ID generationequatable- Value equality
wakelock_plus- Keep screen onflutter_local_notifications- Timer alertsaudioplayers- Timer soundshared_preferences- Settingsintl- Date formattingtimezone- Scheduled notifications
shimmer- Loading statesconfetti- PR celebrationsfl_chart- Progress charts
path_provider- File storageshare_plus- Data exportintroduction_screen- Onboarding
7 Tables:
workouts- Workout definitionsworkout_exercises- Exercises in workoutsexercises- Exercise database (52 seeded)workout_sessions- Completed sessionsperformed_exercises- Exercises in sessionsset_records- Individual sets (reps, weight, RPE)personal_records- PRs by exercise
Indexes: 10 strategic indexes for performance
See ARCHITECTURE.md for SQL schema.
Loading States:
- β Shimmer effects (no spinners)
- β Skeleton screens
- β Show structure while loading
Animations:
- β < 300ms transitions
- β 60 FPS guaranteed
- β Non-blocking (user can interact)
- β
easeInOut/easeOutcurves
Performance:
- β Set entry < 10s (CRITICAL)
- β RepaintBoundary for complex widgets
- β Const constructors everywhere
- Auto-starts after each set
- Compound: 3min, Isolation: 90s
- Notifications: 10s warning + completion
- Background execution (iOS/Android)
- Controls: pause, skip, Β±30s
- Auto-detection (max weight, reps, volume)
- Confetti celebration π
- History tracking
- 100% functional without internet
- No login required (Phase 1)
- All data local (SQLite)
None yet - we're just starting! π
- Pick a story from Sprint Planning
- Read story file in
docs/stories/ - Implement following Clean Architecture
- Write tests (>80% coverage)
- Update story status
- Move to next story
- Clean Architecture layers respected
- BLoC for all state management
- Repository pattern for data access
- Equatable for value objects
- Tests for all business logic
- 10 alpha users (3+ sessions/week)
- 80% session completion rate
- < 10s set entry time
- 99% crash-free rate
- >80% test coverage
- PM: John π
- Architect: Winston ποΈ
- Scrum Master: Bob π
- Dev: [Your name here]
Next Steps:
- β Read ARCHITECTURE.md
- β Pick Story 2.1 from Sprint Planning
- β Implement following Story 2.1
- β Write tests
- β Repeat!
Timeline: 42 days β MVP in your hands! πͺ
Generated by BMadβ’ Core - 2026-01-11
Ready for Story Loops! π