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
This commit is contained in:
Millian Lamiaux
2026-03-24 12:04:48 +01:00
parent 8703c484e8
commit cd065d07c3
138 changed files with 26819 additions and 1043 deletions

View File

@@ -8,7 +8,21 @@
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"lint": "expo lint"
"lint": "expo lint",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"test:render": "vitest run --config vitest.config.render.ts",
"test:maestro": "maestro test .maestro/flows",
"test:maestro:onboarding": "maestro test .maestro/flows/onboarding.yaml",
"test:maestro:programs": "maestro test .maestro/flows/program-browse.yaml",
"test:maestro:tabs": "maestro test .maestro/flows/tab-navigation.yaml",
"test:maestro:paywall": "maestro test .maestro/flows/subscription.yaml",
"test:maestro:player": "maestro test .maestro/flows/workout-player.yaml",
"test:maestro:activity": "maestro test .maestro/flows/activity-tab.yaml",
"test:maestro:profile": "maestro test .maestro/flows/profile-settings.yaml",
"test:maestro:all": "maestro test .maestro/flows/all-tests.yaml",
"test:maestro:reset": "maestro test .maestro/flows/reset-state.yaml"
},
"dependencies": {
"@expo-google-fonts/inter": "^0.4.2",
@@ -64,10 +78,16 @@
"zustand": "^5.0.11"
},
"devDependencies": {
"@testing-library/jest-native": "^5.4.3",
"@testing-library/react-native": "^13.3.3",
"@types/react": "~19.1.0",
"@vitest/coverage-v8": "^4.1.1",
"eslint": "^9.25.0",
"eslint-config-expo": "~10.0.0",
"typescript": "~5.9.2"
"jsdom": "^29.0.1",
"react-test-renderer": "^19.1.0",
"typescript": "~5.9.2",
"vitest": "^4.1.1"
},
"private": true
}