- Replace browse tab with Supabase-connected explore tab with filters - Add React Query for data fetching with loading states - Add 3 structured programs with weekly progression - Add Supabase anonymous auth sync service - Add PostHog analytics with screen tracking and events - Add comprehensive test strategy (Vitest + Maestro E2E) - Add RevenueCat subscription system with DEV simulation - Add i18n translations for new screens (EN/FR/DE/ES) - Add data deletion modal, sync consent modal - Add assessment screen and program routes - Add GitHub Actions CI workflow - Update activity store with sync integration
113 lines
3.1 KiB
Markdown
113 lines
3.1 KiB
Markdown
# TabataFit
|
|
|
|
> **Apple Fitness+ for Tabata** — The Premium HIIT Experience
|
|
|
|

|
|

|
|

|
|

|
|

|
|
|
|
## Vision
|
|
|
|
TabataFit est l'Apple Fitness+ du Tabata. Une expérience premium, video-first, guidée par des coachs, qui transforme 4 minutes d'exercice en une expérience de fitness immersive.
|
|
|
|
## Features
|
|
|
|
- 🎬 **Video-led workouts** — HD video demonstrations by professional trainers
|
|
- ⏱️ **Smart timer** — Tabata timer with work/rest phases
|
|
- 🔥 **Burn Bar** — Compare your calories with the community
|
|
- 📊 **Activity tracking** — Streaks, stats, and trends
|
|
- 🎵 **Music sync** — Curated playlists for each workout
|
|
- ⌚ **Apple Watch** — Heart rate and activity rings
|
|
|
|
## Tech Stack
|
|
|
|
- **Framework**: Expo SDK 52
|
|
- **Navigation**: Expo Router v3
|
|
- **State**: Zustand
|
|
- **Video**: expo-av (HLS streaming)
|
|
- **Payments**: RevenueCat
|
|
- **Analytics**: PostHog
|
|
|
|
## Getting Started
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npx expo start
|
|
|
|
# Run on device (scan QR with Expo Go)
|
|
```
|
|
|
|
## Documentation
|
|
|
|
| Document | Description |
|
|
|----------|-------------|
|
|
| [PRD v2.0](./TabataFit_PRD_v2.0.md) | Product Requirements |
|
|
| [PDD v2.0](./TabataFit_PDD_v2.0.md) | Product Design |
|
|
| [BDSD v2.0](./TabataFit_BDSD_v2.0.md) | Brand Design |
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
features/
|
|
home/ # Home tab
|
|
workouts/ # Workouts browser
|
|
player/ # Video player + timer
|
|
activity/ # Stats & history
|
|
browse/ # Filters & trainers
|
|
profile/ # User settings
|
|
shared/
|
|
components/ # Reusable UI
|
|
hooks/ # Custom hooks
|
|
constants/ # Design tokens
|
|
app/ # Expo Router routes
|
|
```
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
# Unit tests with coverage
|
|
npm run test:coverage
|
|
|
|
# Component render tests
|
|
npm run test:render
|
|
|
|
# All unit + render tests
|
|
npm test && npm run test:render
|
|
|
|
# Maestro E2E (requires Expo dev server + simulator)
|
|
npm run test:maestro
|
|
|
|
# Admin-web tests
|
|
cd admin-web && npm test # Unit tests
|
|
cd admin-web && npm run test:e2e # Playwright E2E
|
|
```
|
|
|
|
### Test Coverage
|
|
|
|
| Layer | Target | Tests |
|
|
|-------|--------|-------|
|
|
| Stores | 80%+ | playerStore, activityStore, userStore, programStore |
|
|
| Services | 80%+ | analytics, music, purchases, sync |
|
|
| Hooks | 70%+ | useTimer, useHaptics, useAudio, usePurchases, useMusicPlayer, useNotifications, useSupabaseData |
|
|
| Components | 50%+ | StyledText, VideoPlayer, WorkoutCard, GlassCard, CollectionCard, modals, Skeleton |
|
|
| Data | 80%+ | achievements, collections, programs, trainers, workouts |
|
|
|
|
### E2E Tests
|
|
|
|
- **Mobile (Maestro)**: Onboarding, tab navigation, program browse, workout player, activity, profile/settings
|
|
- **Admin Web (Playwright)**: Auth, navigation, workouts CRUD, trainers, collections
|
|
|
|
## License
|
|
|
|
Proprietary — All rights reserved.
|
|
|
|
---
|
|
|
|
Built with ❤️ for HIIT lovers
|