Some checks failed
- admin-web: Added an "All Music" library view with search, genre, and status filters. - admin-web: Converted Jobs view to use expandable cards instead of a split pane. - admin-web: Added ability to delete individual tracks from a job. - functions: Added new `youtube-classify` edge function to automatically categorize tracks using Gemini LLM. - functions: Integrated AI genre classification during initial playlist import if no manual genre is provided. - worker: Added `/classify` endpoint for the worker to securely interface with Gemini. - scripts: Updated deployment script to include `GEMINI_API_KEY`.
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
# 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
Languages
TypeScript
94.5%
JavaScript
3.3%
PLpgSQL
1.7%
CSS
0.3%
Shell
0.2%