ClaiR LabCédric Rogne · Outils web sur mesure Décrire mon projetContact

Ligue 1 Pronos

Le jeu de pronostics de 20 amis, sur toute la saison. Le tableur Excel rempli à la main est devenu une application : chacun joue sur son téléphone, les scores et le classement arrivent seuls.

Le classement présenté comme une feuille de match
Les pronostics de la journée
Le chat du groupe
20
joueurs, tous amis
34
journées de championnat
306
matchs pronostiqués dans la saison
2 min
entre deux mises à jour des scores

Un tableur Excel rempli à la main

Avant l’application, je faisais jouer le groupe avec un tableur Excel que j’avais construit moi-même. Les formules calculaient les points et le classement. Tout le reste passait par moi.

  • Saisir à la main les pronostics de chaque joueur, match après match
  • Saisir à la main les résultats après chaque rencontre
  • Programmer la publication des pronostics avant chaque coup d’envoi, pour que personne ne puisse tricher ni modifier son choix après coup, au risque d’un retard ou d’un oubli
  • Construire le tableur : colonnes, logos des équipes, formules de points et de bonus
  • Envoyer le classement au groupe une fois la journée calculée
Capture du tableur Excel pour une journée de championnat : 9 matchs, les pronostics des 16 joueurs de l’époque, les points et les bonus.
Une journée dans le tableur, quand le groupe comptait 16 joueurs : les 9 matchs, le pronostic de chaque joueur, les points et les bonus.
Capture du classement général dans le tableur Excel : points, écarts avec les premières places et journées de bonus.
Le classement général : les points, les écarts avec les places qui gagnent un lot et la journée où chacun a joué son bonus.

Pour la Coupe du monde 2026, j’ai franchi une première étape avec Google Sheets et un script Google, branchés sur une API de scores. Cela marchait bien. Mais une saison entière de Ligue 1 représente plus de 6 000 pronostics, et un tableur n’est pas fait pour servir une application. J’ai donc choisi Firebase, une base de données conçue pour ça.

Ce qui a changé

Avant, avec ExcelMaintenant, avec l’application
Pronostics Saisis à la main, un par un Saisis par chaque joueur sur son téléphone
Résultats Saisis à la main après chaque match Récupérés automatiquement toutes les 2 minutes
Triche et retards Publication à programmer avant chaque coup d’envoi, avec le risque d’un retard Chaque match se verrouille tout seul au coup d’envoi : plus de triche possible, plus aucun retard à gérer
Points et classement Calculés par les formules du tableur Calculés par l’application, en direct pendant les matchs

Ce que les joueurs utilisent

Des pronostics simples

Trois boutons 1, N ou 2 pour 8 matchs de la journée, et un score exact pour le match du dimanche soir. Quelques journées de la saison restent en score exact.

Le joker et les bonus

Un joker qui double les points d’une journée, des bonus de 1 à 10 points pour 6, 7, 8 ou 9 bons pronostics, un bonus de fin de saison sur le top 4, et des points doublés sur le match spécial pour les derniers du classement.

Un classement vivant

Podium, courbe d’évolution des positions, flèches de progression et séries. Le classement bouge pendant les matchs.

Comparer et se chambrer

Comparer ses pronostics avec ceux des autres, duel entre deux joueurs, chat du groupe avec réactions.

Le calendrier des 34 journées

Les horaires reflètent automatiquement les matchs avancés ou reportés. Si le match du dimanche soir est décalé, je choisis en un clic quel match devient le match spécial.

Installable sur le téléphone

Connexion avec un compte Google, icône sur l’écran d’accueil, notifications de fin de journée.

L’application en images

Cliquez sur une capture pour l’agrandir.

PronosLes matchs de la journée, le joker ×2 et le score en direct.
Le onze de départLe classement présenté comme une feuille de match.
Le bancLe reste du classement, avec la zone rouge des relégables.
ÉvolutionLa courbe des positions et l’équipe la plus dure à pronostiquer.
ComparerLes points de tous les joueurs pour la journée.
Détail d’un matchQui a pronostiqué quoi, match par match.
ChatLe groupe discute, l’appli annonce les résultats.
MenuProfil, bonus saison, calendrier, historique, jokers, règles.

Une journée de match

  1. Avant le coup d’envoiChacun pronostique les matchs. Chaque match se verrouille tout seul à son coup d’envoi, le joker aussi.
  2. Pendant les matchsLes scores arrivent toutes les 2 minutes. Le classement provisoire se met à jour et chaque bon pronostic s’affiche en direct.
  3. Quand les 9 matchs sont terminésL’application calcule les points de tous les joueurs. Je n’ai rien à lancer.
  4. Dans la fouléeLe chat annonce le vainqueur de la journée et les joueurs qui profitent du bonus de relégation, et les téléphones reçoivent une notification.

Comment c’est construit

Interface
HTML, CSS et JavaScript, sans framework
Comptes et données
Firebase : connexion Google et base de données Firestore
Hébergement
Netlify, avec une fonction planifiée toutes les 2 minutes pour les scores
Matchs et scores
API football-data.org
Mobile
Application installable et notifications chiffrées (Web Push)
Sécurité
La clé de l’API de scores reste côté serveur, jamais dans le navigateur. Des règles d’accès empêchent un joueur de modifier les pronostics des autres
Tests
68 vérifications des règles d’accès à la base, 13 scénarios de récupération des scores rejoués, et des tests du calcul des points
Versions
Plus de 100 mises à jour publiées depuis le lancement
Construit avec des outils d’IA Je décris le besoin, je teste sur de vrais téléphones, je remonte les problèmes et je décide de ce qui reste dans l’application. L’IA écrit le code et je pilote le produit.

Ce que ce projet m’a appris

  • Tester sur le terrain. Une fois en ligne, les joueurs ont fait remonter des cas que je n’avais pas imaginés : un match joué à l’envers, un score refusé, un pronostic laissé vide. J’ai ajouté des outils pour les corriger sans toucher à la base.
  • Associer les données par identifiant. Lors de la 8e journée, la base a dépassé son quota gratuit de lectures. La récupération des scores est alors revenue à l’ordre de la liste, et des scores ont atterri dans les mauvais matchs. Désormais, chaque match est reconnu par son identifiant propre, et ce scénario est rejoué dans les tests.
  • Économiser ce qui est gratuit. La vérification tourne toutes les 2 minutes. Quand aucun match n’a commencé, elle ne fait qu’une lecture. Une journée déjà terminée en demande 2 au lieu de 11.
  • Prévoir les ratés de la source. Il arrive que l’API laisse un match « en cours » bien après la fin. Un match qui a un score et dont le coup d’envoi date de plus de 2 h 30 est alors considéré comme terminé. Les matchs reportés ou arrêtés ne sont jamais forcés.
  • Penser à l’écran du téléphone. Sur iPhone, un champ de saisie trop petit déclenche un zoom. Tous les champs sont réglés pour l’éviter.
  • Regrouper les mises en ligne. Publier 17 fois dans la même journée a épuisé le quota gratuit de l’hébergeur. Je regroupe maintenant les changements.

Un tableur vous fait perdre du temps ?