Football Club Manager

L'ambition derrière la création.
Honnêtement, gérer un club de foot aujourd'hui relève souvent du casse-tête : les infos des joueurs sont éparpillées, le staff communique difficilement, et l'administratif est lourd. Avec ce projet, l'objectif n'était pas juste de faire une énième application de statistiques, mais de créer le système nerveux numérique du club.\n\nJ'ai conçu cette plateforme pour qu'un coach puisse dessiner sa tactique sur le banc, pendant que la direction gère les abonnements via Stripe, le tout synchronisé en temps réel. La véritable valeur ajoutée réside dans l'intégration de Gemini AI, qui agit comme un coach adjoint virtuel (analyse des données, rapports de matchs, conseils tactiques).\n\nCôté ingénierie, j'ai mis un point d'honneur à utiliser des architectures propres et évolutives : une approche FSD (Feature-Sliced Design) en front-end pour garantir la modularité, et une architecture en couches stricte côté back-end.
Le Challenge
Le plus gros défi ? L'hétérogénéité des usages. Il fallait faire cohabiter des fonctionnalités temps réel (le tableau tactique interactif, le 'Match Center' en live) avec des opérations beaucoup plus lourdes (analyses par intelligence artificielle, facturation, statistiques de la saison). Le tout devait rester ultra-fluide et parfaitement responsive, car l'application est pensée pour être utilisée aussi bien par un coach sur son smartphone au bord de la pelouse, que par un président de club sur son ordinateur de bureau.
La Solution
Pour relever ce défi, j'ai opté pour un découpage strict et une stack technique de pointe. Côté front, React 18 couplé à Vite offre une réactivité irréprochable, avec Tailwind CSS pour un design system cohérent. Côté back-end, Node.js et Express s'appuient sur une architecture en couches (Controllers -> Services -> Repositories) qui isole parfaitement la logique métier. La validation centralisée avec Zod sécurise les données de bout en bout, tandis que Socket.io gère les flux en temps réel sans surcharger le serveur MySQL.
Aperçu de l'interface utilisateur



