Page 1 sur 1

Génération horaires de départ course à étapes

MessagePosté: 25 Juillet 2019, 17:25
par Jérôme
Comme promis à certains, et dans l'esprit "open source" cher à l'équipe organisatrice PACA, vous pouvez trouver sur mon GitHub (https://github.com/jmonclard/COdepart) le code du logiciel qui a été utilisé pour générer les horaires de départ des O'France 2019.

Ce programme peut être utilisé pour les O'France mais aussi pour toute autre course à étape.

Tous les détails sont dans le fichier pdf de documentation sur GitHub, mais voici les caractéristiques principales :
  • Travaille directement depuis le CSV d'inscription venant de la FFCO
  • Génère des fichiers CSV pouvant être directement importés dans le logiciel de GEC
  • Regroupe les membres d'un même club dans une même tranche horaire
  • Effectue une permutation circulaire des tranches horaires d'un jour sur l'autre
  • Gère les demandes particulières, par exemple les rattachements d'une poersonne à un autre club ou des départs tôts/tardifs
  • Gère un nombre quelconque d'étapes et de tranches horaires
  • Gère un nombre quelconque de circuits
  • Gère plusieurs catégories par circuit
  • Permet de définir pour chaque circuit :
    • L'heure du premier départ (autorisant ainsi, par exemple, les départs sur minutes paires et impaires)
    • L'intervalle entre départs pour un même circuit
    • La méthode de détermination des heures de départ :
      • aléatoire
      • suivant un ranking (IOF ou CN)
      • au boîtier
      • libre
      • aucune gestion
  • utilise directement les fichiers CSV de l'IOF et de la FFCO pour les circuits avec ranking
  • s'assure qu'il n'y a pas deux personnes du même club sur le même circuit partant consécutivement
  • minimise la durée des départs
  • lisse la charge de l'atelier départ
  • génère le fichier CSV des dossards
  • génère les étiquettes (par exemple pour les enveloppes ou les sacs de récupération de carte)
  • génère les listes récapitulative par club à insérer dans les enveloppes
  • génère un fichier de rapport au format markdown pouvant être transformé en pdf à l'aide de Pandoc
  • est configurable à l'aide d'un fichier texte au format JSON
  • est un programme Python open source sous licence GNU GPL pouvant être modifié à volonté
  • fonctionne dans tous les environnements (Windows, Linux, Mac,...)

En espérant qu'il resserve un jour... :D

Re: Génération horaires de départ course à étapes

MessagePosté: 25 Juillet 2019, 18:21
par rma
Bonsoir Jérôme
j'ai téléchargé, mais pas encore ouvert !

Car le seul énoncé des propriétés est attrayant et mérite sans doute l'analyse

Rien qu'à la lecture, beaucoup de points sont communs à "HELGA et son HELGA_Extra" qui ont déjà facilité maintes fois la vie des utilisateurs.
Il ne nous reste donc qu'à découvrir les nouveautés originales et à évoluer.

et peut-être surtout en priorité les points
génère un fichier de rapport au format markdown pouvant être transformé en pdf à l'aide de Pandoc
est configurable à l'aide d'un fichier texte au format JSON
est un programme Python open source sous licence GNU GPL pouvant être modifié à volonté


car tout cela est un peu mystérieux.

Re: Génération horaires de départ course à étapes

MessagePosté: 25 Juillet 2019, 21:36
par Jérôme
rma a écrit:car tout cela est un peu mystérieux.

Rien de bien mystérieux en fait.
Le programme a été écrit en Python, un langage de programmation très utilisé, ce qui permet de le faire tourner sur tous les systèmes d'exploitation. Et comme on exécute directement le fichier source, rien de plus facile à modifier pour l'adapter (par exemple changer le contenu des colonnes des fichiers CSV générés pour passer d'un logiciel de GEC à un autre).

Le programme a des centaines de paramètres. Pour que ce soit plus facile, ils ont été regroupés dans un fichier JSON (un format qui ressemble un peu au XML mais un peu plus tolérant) que l'on modifie avec un simple éditeur de texte style Notepad. Le format est décrit dans la (longue) documentation (35 pages :? ), mais le mieux est de repartir du fichier ofrance2009.json situé dans le répertoire d'exemple. Normalement les identifiants sont très compréhensibles.

Quand au LaTeX et Markdown, ce sont des formats de description de documents texte. L'avantage est qu'ils peuvent facilement être générés automatiquement par un programme (puisque c'est un simple texte) et transformés ensuite en un beau pdf à l'aide d'outils "standards" (oui, bon, standards pour les Geeks...)

Donc pas de mystère : ce ne sont que des formats de fichiers ouverts dont certains, le LaTeX par exemple, sont couramment utilisés depuis plus de 35 ans pour la publication d'articles et de livres scientifiques. Pas d'innovation de ce côté là !

Tous les outils sont gratuits (et même open source). Et il n'y a pas une belle interface utilisateur avec menus et boutons pour utiliser le programme mais tout se lance en ligne de commande.

C'est sûr que pour les aficionado de Bill Gates ou de la marque à la pomme, ça peut être un choc, style retour aux années 80 :lol:

Mais c'est un programme qui normalement ne sert qu'une fois, et pendant moins d'une minute ! Je ne vois pas trop l'intérêt de passer des semaines à lui faire une belle interface utilisateur. Ce qui compte c'est qu'il fasse bien son boulot.

Re: Génération horaires de départ course à étapes

MessagePosté: 27 Juillet 2019, 10:00
par plop98
Bonjour,

Merci Jérôme de partager ce logiciel, qui j'espère permettra à d'autres organisations d'améliorer la qualité de leurs événements dans le futur (faire partir les membres d'un même club dans un même groupe horaire ça a ses avantages…) !

Concernant le fait que c'est uniquement en ligne de commande, tu peux très facilement faire une petite interface graphique en python, si tu ne connais pas, avec la bibliothèque CVUI : https://dovyski.github.io/cvui/

En tout cas bravo et merci de partager ça !