Aller au contenu principal

🏋️ Sport'Up

Logo de React Native Logo de TypeScript Logo d'Expo Logo de Temporal Logo de Hasura Logo de PostgreSQL Logo de Keycloak Logo de Stripe Logo de Mapbox Logo de Google Logo de AntDesign Logo de Refine

🚧 WIP


Plateforme SaaS de réservation de créneaux sportifs

Sport'Up est une solution SaaS dédiée aux complexes sportifs leur permettant de :

  • gérer leurs terrains,
  • créer des offres récurrentes,
  • générer automatiquement des créneaux de réservation,
  • proposer une expérience fluide aux utilisateurs finaux pour réserver leurs sessions sportives depuis une app mobile.

L'architecture repose sur un ensemble de composants découplés et scalables, choisis pour répondre aux exigences de sécurité, de fiabilité, de flexibilité et d'intégration rapide.


🧱 Architecture générale

DomaineTechnologie / Service
App mobile utilisateursReact Native (Expo), TypeScript
Dashboard proReact, Refine, Ant Design
Backend & orchestrationJobar (custom framework), Temporal.io
API & donnéesHasura GraphQL, PostgreSQL
IAMKeycloak (OIDC), Google OAuth
PaiementStripe (abonnement selon le nombre de terrains)
Géolocalisation & cartographieMapbox
CI/CD & déploiementGitLab CI, Docker, infrastructure auto-hébergée

🛠️ Choix techniques stratégiques

  • Temporal.io pour orchestrer les tâches critiques (génération de créneaux, envoi de notifications, gestion de relances) avec une tolérance aux pannes et des workflows auditables.
  • Jobar : framework maison basé sur Temporal, permettant une exposition simple des tâches métiers via HTTP avec logs et cryptage intégrés.
  • Hasura pour bénéficier d'un accès temps réel aux données via GraphQL, avec des permissions granulaires et des subscriptions intégrées.
  • Keycloak en mode self-hosted, avec stratégie d'authentification OIDC et intégration Google OAuth pour simplifier la connexion des utilisateurs.
  • Stripe utilisé en mode SaaS B2B, avec un modèle d'abonnement dynamique (tarification par nombre de terrains gérés).
  • Mapbox pour afficher une carte interactive dans l'application mobile, localiser les complexes et enrichir l'UX utilisateur.
  • Refine + Ant Design pour concevoir rapidement un dashboard professionnel, en gardant un fort niveau de personnalisation et de scalabilité.
  • React Native avec Expo pour déployer rapidement l'application sur iOS et Android tout en gardant une base de code unifiée.
  • CI/CD avec GitLab pour industrialiser le processus de build, test, déploiement sur un serveur Docker auto-hébergé sécurisé.

🔒 Sécurité & Gouvernance

  • Authentification centralisée via Keycloak (gestion des rôles complexes / utilisateurs).
  • Sécurisation des échanges via HTTPS + tokens JWT signés.
  • Gestion fine des accès sur Hasura grâce aux policies.
  • Logs structurés pour les workflows via Jobar + Winston.

🧩 Écosystème modulaire

Chaque composant du système est pensé pour être modulaire, testable, et remplaçable indépendamment, selon l'évolution du projet. Cela facilite également l'ouverture vers d'autres canaux (API publique, extensions partenaires, etc.)


🎯 Un projet à la fois technique et produit, pensé pour industrialiser les réservations sportives tout en étant prêt à s'adapter à de nombreux types d'infrastructures sportives.


📁 Le code n'est pas encore open source, mais une version démo est prévue prochainement.