Jour de compétition
Check-in, arbitrage, scoring et diffusion en direct pour les événements Fitofan
Cinq applications qui font tourner un tournoi sur place : check-in et arbitrage sur un ordinateur, consoles de juge sur téléphones et tablettes, une passerelle vers le matériel de scoring, des téléphones qui diffusent avec un tableau de score en direct, et le replay multicaméra.
- Rôle
- Lead Engineer : Flutter, iOS et Android natifs, desktop
- Période
- 2024 – 2026


Contexte
Les tournois se déroulent dans des gymnases au Wi-Fi capricieux, avec du matériel emprunté et aucun temps pour l’installation. L’écosystème Fitofan avait besoin de son propre logiciel de salle, et j’en ai construit chaque partie de zéro.
Le défi
Maintenir le check-in, l’arbitrage et la diffusion quand internet tombe, laisser n’importe quel téléphone ou tablette rejoindre en scannant un code QR, et renvoyer les résultats à la plateforme et aux systèmes de scoring tiers.
Construit sur toutes les couches
- Fitofan Core, desktop Flutter pour macOS, Windows et Chromebook : check-in avec paiements et impression de badges QR, arbitrage pour le judo et le MMA, tirages et tableaux, un second processus pour l’écran TV
- Fitofan Touch, Flutter pour téléphones et tablettes : une console de juge avec 10 règlements, du taekwondo WT et ITF et du karaté WKF à la gymnastique et au breaking, avec retours haptiques et un modèle de saisie sensible à la connectivité
- Fitofan Connect, desktop Flutter : une base de résultats SQLite et une API HTTP locale qui fait le pont vers le scoring électronique tiers
- LiveOn, natif Swift et Kotlin : diffusion configurée par QR vers Amazon IVS avec un mixeur à trois couches, caméra, logo et tableau de score en surimpression
- VR, Electron : jusqu’à quatre caméras téléphone, USB ou RTSP via WebRTC, replay instantané et découpe de clips avec ffmpeg, rediffusion YouTube, licences hors ligne, builds signés et notarisés pour macOS, Windows et Linux
Points d’ingénierie
- Offline-first : une file sortante persistée se vide vers la plateforme au retour de la connexion
- Un protocole LAN écrit à la main : découverte par broadcast UDP, sessions TCP avec reconnexion, un lien loopback vers la fenêtre TV
- Surimpressions de score rendues nativement et composées dans le flux vidéo une fois par seconde
- Un flux de scoring en direct via Socket.IO pilote la surimpression sur iOS et la détection automatique des limites de combat dans l’application de replay
Ce que cela permet
Un organisateur arrive avec des ordinateurs portables et des téléphones et gère inscription, arbitrage, scoring et diffusion depuis un seul écosystème, avec ou sans connexion.