# 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