🏋️

Benchrep

Période : octobre 2025

Technologies utilisées

Laravel
React Native

Langages

php mysql javascript typescript

Contexte

Projet personnel

BenchRep

Application mobile de musculation avec système d'abonnement freemium et coaching intelligent

Description du projet

BenchRep est une application mobile complète permettant le suivi d'entraînements de musculation, avec un backend API Laravel robuste et une architecture orientée domaine métier.

Le projet implémente un modèle freemium à 3 niveaux (FREE avec publicités, PREMIUM sans pubs, AI_COACH avec coaching IA à venir), gérant plus de 100 exercices, des programmes personnalisés et un système de statistiques avancées.

L'objectif est de fournir une expérience utilisateur fluide tout en garantissant une architecture scalable, maintenable et testée.

Technologies utilisées

Backend : Laravel 12, PHP 8.3+, PostgreSQL, Redis, AWS S3

Mobile : React Native, Expo Router, TypeScript

Paiements & Monétisation : RevenueCat, Google AdMob

Notifications & Monitoring : Expo Notifications, Sentry

Qualité & Tests : PHPStan, Rector, PHPUnit, GitHub Actions

Architecture & Principes

Domain-Driven Design (DDD)

Organisation par domaines métier distincts (User, Exercise, Program, Workout, Billing, Stats, Motivation) avec séparation stricte des responsabilités. Chaque domaine contient ses propres Services, Repositories, DTOs, Enums et Policies.

Clean Architecture

  • Controllers fins : délèguent aux Services

  • Services : orchestration de la logique métier

  • Repositories : encapsulation de l'accès base de données

  • DTOs immutables : typage strict des entrées/sorties

  • Policies : autorizations centralisées

Provider-Agnostic Billing

Architecture adapter pattern permettant d'abstraire le provider de paiement (actuellement RevenueCat), facilitant un changement futur sans réécriture du code métier.

Fonctionnalités clés

Système freemium intelligent

  • FREE : 1 programme custom, stats 7 jours, avec publicités

  • PREMIUM : programmes illimités, stats complètes, notifications motivation, sans pubs

  • AI_COACH : tout Premium + coaching IA (roadmap)

  • Middleware automatique restreignant l'accès selon le tier

Gestion complète de l'entraînement

  • Catalogue de 100+ exercices avec médias hébergés sur S3

  • Création de programmes personnalisés avec système d'Energy Level pour équilibrage automatique

  • Tracking en temps réel des workouts avec détection automatique des Personal Records

  • Calcul automatique du volume, calories et durée

Statistiques et progression

  • Stats globales, par programme et par exercice avec historique complet

  • Insights hebdomadaires/mensuels (fréquence, tendances, progression)

  • Limitation conditionnelle selon tier (7 jours FREE vs illimité PREMIUM)

Système de motivation contextuel

  • Messages générés automatiquement selon les achievements (PRs, streaks, progression)

  • Règles métier : célébrations, suggestions de repos, rappels d'inactivité

  • Affichage conditionnel réservé au tier PREMIUM

Onboarding personnalisé

  • Questionnaire complet : objectif, niveau d'expérience, gestion des blessures

  • Préférences multilingues (FR/EN) et système d'unités (kg/lbs)

Défis techniques relevés

Backend robuste et testé

Mise en place d'une architecture DDD stricte avec tests exhaustifs (unitaires, feature, policies, webhooks) garantissant un coverage >80%.

Analyse statique PHPStan niveau max pour éviter les régressions. Gestion des webhooks RevenueCat avec signature verification et synchronisation bidirectionnelle des abonnements.

Performance et scalabilité

Redis pour le cache et les queues asynchrones.

Optimisation des requêtes Eloquent et indexes stratégiques pour gérer de gros volumes de données.

Expérience mobile fluide

Design system complet avec theming, composants réutilisables et dark mode. Gestion native du keyboard et des safe areas iOS/Android.

Optimistic UI updates pour masquer la latence réseau. Intégration complète RevenueCat (offerings, restore purchases, sync entitlements).

Internationalisation complète

Traduction backend et frontend (API responses, validations, notifications push). Système i18next pour React Native avec contenu dynamique multilingue en base de données.

Monétisation et conformité

Affichage conditionnel des publicités AdMob selon le tier et le consentement utilisateur. Architecture billing agnostique permettant de changer de provider sans impact sur le code métier.

Système de premium granted pour offrir l'accès premium sans abonnement (beta testers, équipe).

Résultats

Application mobile moderne et scalable avec une architecture backend solide suivant les principes du Clean Code et du Domain-Driven Design.

Le système d'abonnement freemium permet de monétiser l'application tout en offrant une expérience gratuite fonctionnelle.

La stack technique choisie garantit la maintenabilité, la testabilité et l'évolutivité du projet pour les futures fonctionnalités (coaching IA, social features, programmes communautaires).

Benchrep est une application mobile native permettant aux sportifs de tracker leurs performances, partager leurs routines d'entraînement et suivre leur progression. Développée avec React Native et Expo.

Fonctionnalités

  • Authentification
  • Onboarding
  • Exercices
  • Programmes
  • Séances
  • Statistiques
  • Abonnement
  • Publicité
  • UI/UX
  • Offline-first strategy
  • Infinite scroll

Contact

N'hésitez pas à me contacter pour échanger sur vos projets.