PulseCoach is an AI-powered adaptive fitness coaching app built with Flutter. It generates short, personalized daily micro-sessions (2–10 min) that adapt to the user's condition through on-device AI logic, sensor data, and contextual information (weather, exercise catalog).
Developed as the exam project for the DIMA (Design and Implementation of Mobile Applications) course at Politecnico di Milano.
📄 Design Document & Test Campaign — the full design rationale, architecture decisions, and test campaign report.
PulseCoach targets students and active people who want quick, decision-free workouts. The core differentiator: the AI isn't decorative — it runs on-device, adapts based on user feedback and sensor data, and explains its decisions.
- Profile & Goals — fitness level, objective (cardio / strength / mobility / well-being), available time, and constraints
- AI-Generated Daily Plan — three micro-sessions per day, dynamically adapted after feedback (RPE 1–10), sensor data, and weather
- Session Catalog — a curated exercise library with an offline fallback
- Progress Tracking — session history and completion trends
- Social — an opt-in accountability layer
- Wear OS companion app — session and rest display synced from the phone
- Full light/tablet responsive layout with rotation support, and English/Italian localization
- Flutter / Dart,
flutter_blocfor state management,go_routerfor navigation - Drift (SQLite) for local persistence,
get_it+injectablefor dependency injection - Supabase for auth, storage, and backend functions
- On-device AI logic for daily plan generation, running in a background isolate
- Sensors & health data via
sensors_plus,health,geolocator - Wear OS module (
pulse_coach/wear) with phone↔watch communication
Flutter_PulseCoach/
├── docs/ # Design docs, requirements, presentation
│ └── PulseCoach Design Document & Test Campaign.pdf
├── pulse_coach/ # Flutter app
│ ├── lib/
│ │ ├── ai/ # On-device AI / behavioral state machine
│ │ ├── core/ # Cross-cutting concerns (DI, DB, error handling)
│ │ ├── features/ # Feature modules (onboarding, today, sessions_catalog,
│ │ │ # progress, social, settings, subscription, ...)
│ │ └── shared/ # Shared UI components
│ ├── test/ # Unit, widget, bloc, and integration tests
│ └── wear/ # Wear OS companion app
└── supabase/ # Backend functions, migrations, and tests
cd pulse_coach
flutter pub get
flutter runRun the test suite:
cd pulse_coach
flutter testdocs/PulseCoach Design Document & Test Campaign.pdf— full design and test campaign documentdocs/REQUIREMENTS.md— DIMA exam requirementsdocs/FLUTTER.md— proposal & compliance analysisdocs/demo-runbook.md— demo runbook