Aller au contenu
~/lucas

← Retour aux projets

Noël en basket

L’application du tournoi de Noël du club : poules, planning, scores et classements se calculent tout seuls, et les résultats se suivent en direct sur téléphone.

En productionCode source privé

  • Nuxt 4
  • Vue 3
  • TypeScript
  • Tailwind 4
  • Drizzle
  • SQLite
  • Docker

Contexte

Le tournoi de Noël du club se gérait dans un Google Sheet. L’application le remplace, avec deux usages :

  • Les organisateurs, sur un portable, gèrent les équipes, le tirage des poules, le planning proposé, la saisie des scores et les feuilles de marque. Les classements et la phase finale se calculent seuls.
  • Les visiteurs suivent le tournoi sur leur téléphone, sans compte : programme, résultats et classements en direct, avec un affichage prévu pour l’écran de la salle.

L’application garde toutes les éditions du tournoi, mais une seule est en ligne à la fois : la base de données elle-même refuse d’en publier deux. Elle sert à l’édition 2026 du tournoi.

Quelques choix qui comptent

  • Les règles dans un moteur en TypeScript pur. La base ne garde que les faits (les scores), et tout le reste se recalcule.
  • Un départage critère par critère, là où le tableur additionnait les critères entre eux.
  • Un moteur testé sur le tournoi 2025. Rejoué avec les vrais scores, il retrouve les classements de l’époque, et il a mis en évidence des défauts du tableur : des critères additionnés, une égalité parfaite non traitée.
  • Des mots de passe de table hachés : je peux révoquer le profil d’une table de marque sans fermer l’accès à l’administration.
  • Un direct qui arrive tout seul sur les téléphones, grâce à des événements envoyés par le serveur (SSE), avec un repli par interrogation régulière.

Les tests

Environ 300 tests automatisés.

// Pour mes projets de 2026, je travaille avec des agents IA (Claude Code) : je cadre le besoin, j’écris la spécification, puis je relis et je valide le code.