Projet de SAE de 3ᵉ année de BUT Informatique, réalisé pour un vrai client à Paris : l'association LABAF (Ligue Amateur de Babyfoot Français). Ce projet universitaire est le plus gros de formation du BUT Informatique. De grande envergure, il visait à livrer un système complet permettant de gérer des matchs et tournois de babyfoot amateur via une application web et une application mobile offrant les mêmes fonctionnalités.
Un écosystème complet
L'objectif était de créer un outil centralisant toute l'activité de la ligue. Contrairement à beaucoup de projets où les rôles sont séparés par plateforme, nous avons fait le choix d'offrir exactement les mêmes fonctionnalités sur le web et sur le mobile :
- Omniprésence des fonctionnalités : Que ce soit sur web ou mobile, un utilisateur peut aussi bien gérer son profil de joueur que modérer des bars ou organiser un tournoi complet s'il en a les droits.
- Expérience Unifiée : Les joueurs peuvent trouver des bars partenaires, lancer des matchs et suivre les tournois depuis n'importe quel support.
- Back-end Robuste : Une API Spring Boot centralisée gérant l'authentification sécurisée, les notifications en temps réel et la logique complexe des tournois pour toutes les plateformes.
Gestion de tournois complexes
L'un des défis majeurs fut l'implémentation de différents formats de tournois, notamment le système suisse pour les phases de poules et les arbres d'élimination directe pour les phases finales. Nous avons dû concevoir des algorithmes capables de générer les rencontres automatiquement tout en respectant les contraintes de temps et de nombre de tables disponibles.

Vue d'ensemble de l'application mobile LABAF

Centre de match : matchs à venir, en cours et passés

Carte interactive des babyfoots, vue des bars sur Paris

Gestion automatisée des tournois : phase de poules en système suisse

Génération dynamique de l'arbre de phase d'élimination
Stack Technique
Le système repose sur une architecture moderne et modulaire :
- Frontend Web : React avec TailwindCSS pour une interface complète, rapide et réactive.
- Mobile : React Native (Expo) avec NativeWind pour une expérience fluide sur iOS et Android.
- Backend : Kotlin avec Spring Boot et Spring Security (JWT).
- Base de données : PostgreSQL pour la persistence des données joueurs, matchs et lieux.
Cette expérience fut particulièrement formatrice car elle nous a confrontés aux exigences d'un client réel et à la nécessité de maintenir une cohérence totale entre plusieurs plateformes.
