Files
tabatago/README.md
Millian Lamiaux cd065d07c3 feat: explore tab, React Query data layer, programs, sync, analytics, testing infrastructure
- 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
2026-03-24 12:04:48 +01:00

113 lines
3.1 KiB
Markdown

# TabataFit
> **Apple Fitness+ for Tabata** — The Premium HIIT Experience
![Expo](https://img.shields.io/badge/Expo-52-black)
![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue)
![License](https://img.shields.io/badge/License-Proprietary-red)
![Tests](https://img.shields.io/badge/Tests-546%20passing-brightgreen)
![Coverage](https://img.shields.io/badge/Coverage-Statements%20%7C%20Branches%20%7C%20Functions%20%7C%20Lines-blue)
## 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