Retour aux projets

Projet open source

StewardPad

La direction de course des ligues Le Mans Ultimate, sur son propre PC.

Rôle
Conception et développement
Année
September 2026

Aperçu

StewardPad suit la course en direct en lisant l'API REST locale de Le Mans Ultimate. Pendant la course, une pression sur Espace enregistre un incident horodaté quelques secondes en arrière (10 par défaut), là où le replay doit reprendre, et on choisit les voitures depuis le classement ou avec les touches 1 à 9. Si le jeu est fermé, l'application le signale, réessaie toutes les 5 secondes, et la saisie continue de fonctionner. Un simulateur intégré remplace le jeu pour s'entraîner ou faire une démo.

Après la course, une file de revue présente chaque incident non tranché dans l'ordre de la course, en plein écran, avec le règlement de la ligue à un clic. Le règlement s'importe depuis Google Docs ou Word en gardant sa numérotation (3.3.a, 3.4.b.iii), et chaque décision cite les articles enfreints.

Côté publication, StewardPad produit un document officiel des décisions (page web ou PDF), une feuille de pénalités, des tableurs pilotes et journal complet, un fichier JSON de résultats, et poste chaque changement de statut sur le Discord de la ligue. Plusieurs commissaires peuvent travailler sur la même course : chacun exporte sa session, et l'import les fusionne incident par incident.

Le backend est en Rust : un adaptateur isole tout ce qui parle au jeu, la session est écrite de façon atomique pour qu'un crash ne laisse jamais un fichier à moitié écrit, et les exports CSV sont générés à la main pour Excel. L'interface est en React avec Tauri 2, et chaque version publiée sur GitHub est signée et proposée en mise à jour dans l'application.

Points clés

  • Saisie d'un incident en une touche, horodaté au bon endroit du replay
  • Classement en direct via l'API REST locale de Le Mans Ultimate, avec un simulateur intégré
  • File de revue et règlement de ligue importé depuis Google Docs ou Word
  • Document des décisions, feuilles de résultats et annonces Discord en direct
  • Fusion des sessions de plusieurs commissaires, mises à jour signées dans l'application

Stack

  • Rust
  • Tauri
  • React
  • TypeScript
  • Vite
  • SCSS
  • Tiptap