• Projets
  • Expertise
  • Ingénierie
  • Services
  • Tarifs
  • À propos
  • Contact
Discuter d’un projet
  • Projets
  • Expertise
  • Ingénierie
  • Services
  • Tarifs
  • À propos
  • Contact
Discuter d’un projet
Valerii Vvedenskyi

Les études de cas décrivent de vrais produits sur lesquels j'ai travaillé ; chaque fait de ce site en provient.

Sections

  • Projets
  • Expertise
  • Ingénierie
  • Services
  • Tarifs
  • À propos
  • Contact

Langues

  • English
  • Українська
  • Русский
  • Қазақша
  • Français
  • Deutsch
  • Español
  • Português

Contact

valerii.vvedenskyi@gmail.com

Toronto, Canada

LinkedIn

© 2026 Valerii Vvedenskyi. Tous droits réservés.

Politique de confidentialité

Conçu et développé par Valerii Vvedenskyi avec Next.js.

  • English
  • Українська
  • Русский
  • Қазақша
  • Français
  • Deutsch
  • Español
  • Português
  • English
  • Українська
  • Русский
  • Қазақша
  • Français
  • Deutsch
  • Español
  • Português
Tous les travaux

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.

Preuves

  • Fonctionne sans internet : données de l’événement en cache local, résultats mis en file et synchronisés au retour de la connexion
  • Les appareils se découvrent sur le réseau de la salle par découverte UDP et sockets TCP
  • Les téléphones diffusent vers Amazon IVS avec un tableau de score en direct composité dans l’image

Stack

  • Flutter
  • Swift
  • Kotlin
  • Electron
  • Amazon IVS
  • WebRTC
  • SQLite
  • ffmpeg

Cas suivant

Y-Tree
Discuter d’un projet