Millian Lamiaux a042c348c1 feat: close v1 feature gaps — freemium gating, video/audio infrastructure, EAS build config
- Add access control service with 3 free workouts (IDs 1, 11, 43), paywall gating on workout detail and lock indicators on explore grid
- Wire VideoPlayer into player background and workout detail preview
- Add placeholder HLS video URLs to 5 sample workouts (Apple test streams)
- Add test audio URLs to music service MOCK_TRACKS for all vibes
- Switch RevenueCat API key to env-based with sandbox fallback
- Create eas.json with development/preview/production build profiles
- Update app.json with iOS privacy descriptions (HealthKit, Camera) and non-exempt encryption flag
- Create collection detail screen (route crash fix)
- Replace hardcoded profile stats with real activity store data
- Add unlockWithPremium i18n key in EN/FR/DE/ES
2026-03-24 12:20:56 +01:00
2026-02-17 17:34:06 +01:00
2026-02-17 17:34:06 +01:00

TabataFit

Apple Fitness+ for Tabata — The Premium HIIT Experience

Expo TypeScript License Tests Coverage

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

# Install dependencies
npm install

# Start development server
npx expo start

# Run on device (scan QR with Expo Go)

Documentation

Document Description
PRD v2.0 Product Requirements
PDD v2.0 Product Design
BDSD v2.0 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

# 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

Description
No description provided
Readme 1.8 MiB
Languages
TypeScript 94.5%
JavaScript 3.3%
PLpgSQL 1.7%
CSS 0.3%
Shell 0.2%