Table des matières
Liste des tableaux
Liste des exemples
Table des matières
Lorsque que j'ai commencé à développer ContestOrg en 2009, mon objectif était de générer un site Web dans le cadre d'un concours de robotique pour que les participants puissent accéder à leurs résultats en ligne. Au cours du développement, ContestOrg est devenu petit à petit une application plus ou moins complète d'organisation de concours. Quelques mois suivant la version finale de ContestOrg 1, j'ai décidé de le mettre en ligne sans trop d'espoir que celui-ci rencontre un certain succès.
A ma grande surprise, ContestOrg a vite trouvé ses utilisateurs. L'idée de développer une deuxième version de l'application s'est rapidement transformée en nécessité à la vue des différents retours des utilisateurs. En plus de mes notes personnelles, tous ces retours, qu'ils soient positifs ou négatifs, ont été d'une grande aide pour l'établissement du cahier des charges de cette deuxième version. C'est ainsi que j'ai commencé le développement de ContestOrg 2 à la fin de l'été 2010. Désireux de livrer une application complète et par manque de temps, la date de sortie a subi de nombreux reports. Après de longs mois d'effort, la nouvelle version voit enfin le jour au printemps 2011 en version beta. L'année qui suit fut dédiée à la récolte d'avis des utilisateurs et c'est au printemps 2012 que ContestOrg 2 est enfin disponible en version finale.
Depuis ContestOrg s'améliore au fil du temps grâce aux nombreux retours de ses utilisateurs.
Au delà du service rendu à ses utilisateurs, j'ai voulu faire de ContestOrg un logiciel libre. L'objectif recherché est de créer une communauté où chacun peut apporter sa pierre à l'édifice : signalement d'erreurs, proposition d'améliorations, développement de fonctionnalités, aide aux utilisateurs, rédaction de documentation... L'application ne pourra que s'en porter mieux. En tant qu'initiateur du projet, j'aurais toujours mon mot à dire dans les grandes lignes mais je ne serais en aucun cas amené à verrouiller le projet. ContestOrg doit devenir un projet vivant de par sa communauté.
Différentes valeurs venant du monde libre sont portés par le projet :
partage : libre échange de la connaissance
passion : amour du travail bien fait
ouverture : pas de barrières entre utilisateurs et contributeurs
liberté : accès aux sources
autonomie : appartenance à la communauté et non à une quelconque entité
Se lancer dans un tel projet n'est pas chose aisée et je me plaît à dire que si j'avais su à l'avance le travail que cela aurait engendré, je ne me serais pas lancé dans l'aventure. Ainsi, je tiens à remercier les personnes qui m'ont soutenus et qui me soutiennent encore : ma fiancée Gaëlle, mes deux frères Luke et Allan, ma soeur Céline et mes deux parents Etienne et Pascale. J'en profite pour remercier également tous les utilisateurs qui m'ont envoyé leurs retours ainsi que tous les développeurs qui sont à l'origine des librairies que l'application réutilise.
ContestOrg est une application visant à organiser n'importe quel type de tournoi. Celle-ci a été pensée et développée de manière générique, c'est à dire qu'aucune spécificité lié à un type de tournoi en particulier n'est présente. Ainsi, les usages que l'on peut avoir de ContestOrg différent selon des besoins des utilisateurs.
Il y a trois grandes parties dans ContestOrg :
Équipes/Joueurs : création/importation des participants, répartition au sein des catégories/poules.
Phases qualificatives : gestion des matchs à caractère non éliminatoire au sein des poules.
Phases éliminatoires : gestion des matchs à caractère éliminatoire au sein des catégories.
A ces trois grandes parties viennent s'ajouter différents utilitaires :
Exportations : permettent de générer des fichiers (PDF, HTML, ...) à partir des données du tournoi
Diffusions : permettent d'afficher sur des écrans distants des informations du tournoi
Dans ce document, nous verrons en détail l'ensemble des fonctionnalités proposées par l'application. Si vous ne trouvez pas les informations que vous cherchez dans ce document, vous pouvez nous contacter en utilisant : le forum ou le formulaire de contact.
ContestOrg est une application développée en Java. Celle-ci a donc besoin de la machine virtuelle Java ainsi que les bibliothèques standards Java pour fonctionner. Il faut donc s'assurer que l'environnement d'exécution Java soit bien installé sur votre ordinateur. Suivez la procédure d'installation en fonction de votre système d'exploitation pour être en mesure de pouvoir lancer ContestOrg.
Pour lancer l'application sous Windows, il vous faut double cliquer
sur ContestOrg.exe
. Il s'agit d'un fichier JAR
encapsulé dans un fichier EXE. Sous Linux et Mac OS, il vous faut lancer
le terminal et exécuter la ligne suivante : java -jar
ContestOrg.jar.
ContestOrg doit être lancé depuis sont répertoire d'installation. Si vous désirez créer un script de lancement, vous ne pourrez donc pas effectuer directement la ligne suivante : java -jar /chemin/de/contestorg/ContestOrg.jar. Il vous faudra d'abord effectuer la ligne suivante : cd /chemin/de/contestorg, puis la ligne suivante : java -jar ContestOrg.jar.
Table des matières
Lorsque vous lancez ContestOrg, nous pouvons observer sur la gauche une barre latérale composée de différents boutons. Cette barre latérale est divisée en trois zones : une zone dediée à la création et au chargement de tournoi, une zone dédiée au tournoi courant et une zone dédiée à l'application.
Description des boutons de la barre de menus :
: créer un nouveau tournoi
: ouvrir un fichier de tournoi
: sauvegarder les modifications du tournoi
: sauvegarder le tournoi dans un autre fichier
: afficher la fenêtre des exportations
: lancer l'exportation définie pour la publication
: afficher la fenêtre des diffusions
: configurer le tournoi
: fermer le tournoi
: ouvrir l'aide
ContestOrg
: afficher le site Web de: afficher l'à propos
: quitter l'application
Sur la zone de droite, nous retrouvons les trois grandes parties de l'application sous la forme d'onglets (équipes/joueurs, phases qualificatives et phases éliminatoires). Chacune de ces trois parties est divisée en quatre zones : une zone dédiée à l'arborescence catégories/poules (à gauche), une zone dédiée aux données de l'onglet courant (au centre), une zone dédiée aux actions sur l'arborescence (en haut), une zone dédiée aux actions sur les données (à droite). Notez que la zone dédiée aux données de l'onglet courant dépendent de la sélection effectuée dans l'arborescence.
Pour ouvrir un concours, cliquez sur le bouton « .co » reprenant les initiales de ContestOrg.
puis sélectionnez le fichier de concours désiré. L'extension choisie estConcernant le format de fichier contenant les données du concours,
il s'agit d'un fichier XML respectant la
DTD fournie dans le fichier
dtds/concours.dtd
au sein du répertoire de
ContestOrg. La DTD est également disponible sur le
site Web de ContestOrg à l'adresse
http://www.elfangels.fr/contestorg/data/dtds/concours.dtd
.
Dans la barre latérale de gauche, cliquez sur
ou pour lancer la fenêtre de création/configuration du tournoi.Au clic sur le bouton
, la fenêtre des modèles de concours s'affiche. Nous y retrouvons la liste des modèles de concours ainsi qu'un bouton pour créer son propre concours avec ses propres paramètres. Les modèles de concours possèdent des paramètres préétablis qu'il est possible de modifier suite à la sélection du modèle via le bouton .Rendez-vous dans le chapitre Créer des modèles de tournois pour se documenter sur la création et l'édition de modèles.
Ci-dessous la liste des modèles de concours :
Badminton :
Points en fonction du résultat : victoire à 1 pts, égalité désactivée, défaite à 0 pts, forfait à -1 pts
Objectifs : jeux remportés, points remportés
Critères de classement : points, résultat des rencontres directes, goal-average général par différence des jeux remportés, résultat des rencontres directes, goal-average général par différence de l'objectif "points remportés"
Basketball :
Points en fonction du résultat : victoire à 2 pts, égalité désactivée, défaite à 1 pts, forfait à 0 pts
Objectifs : score, pénalité
Critères de classement : points, goal-average particulier par différence du score, goal-average particulier inversé par différence du nombre d'objectif "pénalité", goal-average général par différence du score, le moins d'objectifs "pénalité"
Billiard :
Points en fonction du résultat : victoire à 3 pts, égalité à 2 pts, défaite à 1 pts, forfait à 0 pts
Objectifs : manches remportées
Critères de classement : points, goal-average particulier par différence des points, goal-average général par différence des manches remportés, nombre de victoires
Echecs :
Points en fonction du résultat : victoire à 1 pts, égalité à 0.5 pts, défaite à 0 pts, forfait à 0 pts
Objectifs : -
Critères de classement : points
Football :
Points en fonction du résultat : victoire à 4 pts, égalité à 2 pts, défaite à 1 pts, forfait à 0 pts
Objectifs : score, pénalité
Critères de classement : points, goal-average général par différence du score, le plus d'objectifs "score", le moins d'objectifs "pénalité"
Football américain :
Points en fonction du résultat : victoire à 3 pts, égalité à 2 pts, défaite à 1 pts, forfait à 0 pts
Objectifs : score
Critères de classement : points, goal-average particulier par différence du score
Handball :
Points en fonction du résultat : victoire à 3 pts, égalité à 2 pts, défaite à 1 pts, forfait à 0 pts
Objectifs : score
Critères de classement : points, goal-average particulier par différence des points, goal-average particulier par différence du score, goal-average général par différence du score, le plus d'objectif "score"
Jeu de go :
Points en fonction du résultat : victoire à 1 pts, égalité à 0.5 pts, défaite à 0 pts, forfait à 0 pts
Objectifs : -
Critères de classement : points
Judo :
Points en fonction du résultat : victoire à 0 pts, égalité à 0 pts, défaite à 0 pts, forfait à 0 pts
Objectifs : Full Ippon, points
Critères de classement : nombre de victoires, résultat des rencontres directes, le plus d'objectif "Full Ippon", points
Pétanque :
Points en fonction du résultat : victoire à 3 pts, égalité à 2 pts, défaite à 1 pts, forfait à 0 pts
Objectifs : score
Critères de classement : points, goal-average particulier par différence du score, goal-average général par différence du score, le plus de victoires
Ping pong :
En simple :
Points en fonction du résultat : victoire à 2 pts, égalité désactivée, défaite à 0 pts, forfait à 0 pts
Objectifs : manches remportées
Critères de classement : points, résultat des rencontres directes, goal-average général par division des manches remportées, goal-average général par division des points
En double :
Points en fonction du résultat : victoire à 3 pts, égalité à 2 pts, défaite à 1 pts, forfait à 0 pts
Objectifs : manches remportées, jeux remportés
Critères de classement : points, goal-average particulier par division des points, goal-average général par division des manches remportées, goal-average général par division des jeux remportés
Rugby :
Points en fonction du résultat : victoire à 4 pts, égalité à 2 pts, défaite à 0 pts, forfait à -2 pts
Objectifs : score, essais, marque au moins 3 essais de plus que son adversaire (1 pts), a perdu avec un écart de 7 pts ou moins (1 pts)
Critères de classement : points, goal-average particulier par différence du score, goal-average général par différence du score, goal-average général par différence des essais, le plus d'objectif "score", le plus d'objectifs "essais", le moins de forfaits
Tennis :
Points en fonction du résultat : victoire à 2 pts, égalité désactivée, défaite à 1 pts, forfait à 0 pts
Objectifs : manches remportées, jeux remportés
Critères de classement : points, goal-average général par différence des manches remportées, goal-average général par différence des jeux remportés, goal-average particulier par différence des manches remportées, goal-average particulier par différence des jeux remportés
Volley-ball :
Points en fonction du résultat : victoire à 2 pts, égalité désactivée, défaite à 1 pts, forfait à 0 pts
Objectifs : score, manches remportées
Critères de classement : points, goal-average général par division des manches remportées, goal-average général par division du score
Les paramètres ci-dessus s'inspirent des règles officielles. Cependant, certaines règles officielles ne sont pas implémentés dans ContestOrg. Il se peut donc que le classement donné par ContestOrg ne soit pas correct vis-à-vis de ces règles officielles.
Dans cet onglet, nous retrouvons la configuration générale du tournoi, à savoir : les informations du tournoi, les informations de l'organisme et les informations diverses. Dans les informations diverses, nous pouvons choisir le type des participants et si le statut "Homologué" est activé ou non.
Le statut "Homologué" est généralement obtenu par les participants lors d'une étape, les homologations, qui précéde le tournoi. Cette étape permet de vérifier que les participants respectent bien le cahier des charges imposé par l'équipe d'organisation du tournoi. Si le statut "Homologé" est activé, seul les participants qui ont ce statut pourront participer aux matchs.
Exemple 4.1. Exemple d'utilisation du choix du type de participants
Au football, il s'agira d'un tournoi d'équipes, au judo, il s'agira d'un tournoi de joueurs.
Exemple 4.2. Exemple d'utilisation du statut "Homologué"
Au cours de la Coupe de France de Robotique, les équipes doivent passer deux types d'homologations avant de pouvoir participer aux matchs. Il s'agit de l'homologation statique et de l'homologation dynamique. La première vérifie que les robots respectent le règlement (dimensions, sécurité, ...). La deuxième vérifie que les robots sont capables de se déplacer et de marquer des points. Une fois ces deux homologations passées, les équipes obtiennent le statut "Homologué" et peuvent désormais participer aux matchs.
Cette zone permet de spécifier le nombre de points remportés en cas de victoire, d'égalité, de défaite et de forfait. Si votre tournoi n'attribue aucun points en fonction du résultat d'un match, spécifiez « 0 » dans chacune des entrées. Si l'égalité est impossible dans votre tournoi, désactiver l'égalité.
Cette zone permet de spécifier la liste des objectifs qu'un participant peut remporter au cours d'un match. Trois types d'objectifs sont disponibles : les objectifs à points, les objectifs à pourcentage et les objectifs nuls. Notez que l'ordre des objectifs est important dans l'attribution des points.
Ce type d'objectif ne rapport rien au participant qui le remporte.
Ce type d'objectif rapporte un certain nombre de points au participant qui le remporte. Il est possible de définir une borne de participation que le nombre de points remportés au cours du match ne pourra par dépasser. Notez qu'il est possible de spécifier un nombre de points négatif (pour les pénalités par exemple).
// Calcul des points remportés via un objectif à points PROCEDURE OBJECTIF_POINTS ( points_participation, points_objectif, borne_participation ) DEBUT PROCEDURE // Incrémenter le nombre de points de la participation points_participation = points_participation + points_objectif; // Vérifier si le nombre de points de la participation a dépassé la borne de participation SI EST_DEFINI(borne_score) ET ( (points_objectif < 0 ET points_participation < borne_participation) OU (points_objectif > 0 ET points_participation > borne_participation) ) ALORS points_participation = borne_participation; FIN SI; // Retourner le nombre de points de la participation RETOURNER points_participation; FIN PROCEDURE;
Ce type d'objectif rapporte au participant qui le remporte un certain pourcentage du nombre de points gagnés au cours du match. Il est possible de définir une borne d'augmentation que l'augmentation du nombre du points remportés au cours du match ne pourra pas dépasser. Il est possible de définir une borne de participation que le nombre de points gagnés au cours du match ne pourra par dépasser. Notez qu'il est possible de spécifier un pourcentage négatif (pour les pénalités par exemple).
// Calcul des points remportés via un objectif à pourcentage PROCEDURE OBJECTIF_POURCENTAGE ( points_participation, pourcentage_objectif, borne_augmentation, borne_participation ) DEBUT PROCEDURE // Calculer l'augmentation du nombre de points de la participation VAR augmentation = points_participation * pourcentage_objectif; // Vérifier si l'augmentation n'a pas dépassé la borne d'augmentation SI EST_DEFINI(borne_augmentation) ET ( (pourcentage_objectif < 0 ET augmentation < borne_augmentation) OU (pourcentage_objectif > 0 ET augmentation > borne_augmentation) ) ALORS augmentation = borne_augmentation; FIN SI; // Incrémenter les points de la participation points_participation = points_participation + augmentation; // Vérifier si le nombre de points de la participation n'a pas dépassé la borne de participation SI EST_DEFINI(borne_score_objectif) ET ( (pourcentage_objectif < 0 ET points_participation < borne_participation) OU (pourcentage_objectif > 0 ET points_participation > borne_participation) ) ALORS points_participation = borne_participation; FIN SI; // Retourner le nombre de points de la participation RETOURNER points_participation; FIN PROCEDURE;
Cette zone permet de spécifier l'ordre des critères de classement. Pour établir le classement, le première critère sera utilisé. S'il existe des ex-aequos avec le première critère, le deuxième critère critère sera utilisé pour les départager. S'il existe à nouveau des ex-aequos, ce sera le troisième critère qui sera utilisé et ainsi de suite. Il existe plusieurs types de critères de classement :
Nombre de points : les meilleurs participants seront ceux qui ont le plus grand nombre de points
Nombre de victoires : les meilleurs participants seront ceux qui ont le plus grand nombre de victoires
Nombre d'égalités : les meilleurs participants seront ceux qui ont le plus grand nombre d'égalités
Nombre de défaites : les meilleurs participants seront ceux qui ont le plus grand nombre de défaites (il est conseillé d'inverser ce critère)
Nombre de forfaits : les meilleurs participants seront ceux qui ont le plus grand nombre de forfaits (il est conseillé d'inverser ce critère)
Résultats des rencontres directes : ce critère départage deux ex-aequos (et seulement deux) et considère le meilleur participant comme étant celui-ci qui a eu le plus de victoires au cours des rencontres entre les deux participants
Quantité remportée d'un objectif : les meilleurs participants seront ceux qui ont remportés la plus grande quantité de l'objectif renseigné
Goal-Average :
Type : général ou particulier (départage deux ex-aequos et seulement deux)
Méthode : méthode utilisée pour le calcul du goal-average
Donnée : donnée utilisée pour le calcul du goal-average
Pour chacun des critères de classement, il est possible d'inverser son effet. Il conseillé de le faire pour les critères de classement "Nombre de défaites" et "Nombre de forfaits" car un participant qui a plus de défaites ou de forfaits qu'un autre est généralement moins bien positionné que celui-ci. Ce paramètre est également utile pour prendre en compte le nombre de pénalités dans le classement (ajout d'un critère de classement inversé "Quantité remporté d'un objectif" associé à un objectif "Pénalité").
Cette zone permet de spécifier une liste d'exportations prédéfinies disponibles depuis la fenêtre des exportations. L'intérêt est de pouvoir définir à l'avance les exportations que vous serez amener à utiliser au cours du tournoi.
Exemple 4.3. Exemple d'utilisation des exportations prédéfinies
Dans le cadre d'un tournoi quelconque, le responsable d'organisation désire informer les participants, visiteurs et journalistes des informations relative au tournoi. Pour cela, il crée l'exportation ayant pour thème « Site Web » et pour emplacement « Serveur FTP ». Après avoir renseigné les informations nécessaires, il valide le formulaire et spécifie la nouvelle exportation comme étant la publication. Il ne lui reste plus qu'à cliquer sur le bouton pour générer le site Web et l'envoyer sur le serveur FTP.
Pour obtenir un serveur FTP, il vous faut souscrire à une offre d'hébergement : OVH, Gandi, ...
Pour ajouter/éditer une exportation, cliquez sur le bouton Informations de l'exportation concernant informations propres à l'exportation, la zone Thème concernant les données à exporter et la zone Chemin concernant l'emplacement de destination. Pour un chemin de type « Serveur FTP », il vous est possible de tester si la connexion FTP s'établit correctement en cliquez sur le bouton . Ce test comprend : la connexion au serveur FTP, l'identification avec les identifiants fournis, l'envoi d'un fichier de test dans le répertoire de destination indiqué, la suppression de ce fichier et la déconnexion du serveur FTP.
ou . Nous pouvons observer dans la fenêtre de création/édition d'exportation trois zones : la zoneRendez-vous dans le chapitre Créer des thèmes d'exportations et de diffusions pour se documenter sur la création et l'édition de thèmes.
Cette zone permet de spécifier quelle exportation sera lancée lors de l'appel au bouton
dans la fenêtre.Cette zone permet de spécifier la liste des diffusions disponibles depuis la fenêtre des diffusions. L'intérêt est de pouvoir diffuser des informations du tournoi mises à jour en temps réel sur des écrans distants. Tous les thèmes de base permettent le défilement automatique si jamais la hauteur de l'écran ne permet pas d'afficher toutes les données d'un coup.
Pour pouvoir diffuser des informations sur des écrans distants, il faut que les ordinateurs reliés à ces écrans et l'ordinateur qui héberge ContestOrg doivent être connectés sur le même réseau.
Exemple 4.4. Exemple d'utilisation des diffusions
Dans le cadre d'un tournoi quelconque, le responsable
d'organisation désire afficher sur plusieurs écrans dispersés à
travers tout le lieu du tournoi le classement actuel des
participants. Pour cela il crée une diffusion ayant pour port
« 8080 » et pour thème « Classement des
participants aux phases qualificatives ». Il se rend ensuite
dans la fenêtre des diffusions,
puis démarre la diffusion qu'il vient de créer. Muni de son
IP, il se rend sur les différents ordinateurs
reliés aux différents écrans, ouvre un navigateur et rentre dans
la barre d'URL : http://IP:8080/
.
Sur les écrans s'affiche le classement actuel des
participants.
Pour ajouter/éditer une édition, cliquez sur le bouton Ajouter ou Éditer. Nous pouvons observer dans la fenêtre de création/édition de diffusion deux zones : la zone Informations de la diffusion concernant les informations propres à la diffusion et la zone Thème concernant les données à diffuser. Il vous est possible de tester la diffusion en cliquant sur le bouton . Ce test comprend : le démarrage d'un serveur HTTP sur le port indiqué, la mise à disponibilité d'un fichier de test via le serveur HTTP, la requête HTTP pour récupérer le contenu du fichier de test et l'arrêt du serveur HTTP.
Rendez-vous dans le chapitre Créer des thèmes d'exportations et de diffusions pour se documenter sur la création et l'édition de thèmes.
Dans cet onglet, nous retrouvons la configuration des prix que peuvent recevoir les participants.
Dans cet onglet, nous retrouvons la configuration des lieux et emplacements dédiés aux matchs du tournoi. Un lieu est une collection d'horaires et d'emplacements. Les horaires permettent de déterminer à quelle heures les lieux sont disponibles les matchs. Les emplacements permettent de déterminer à quels endroits il est possible d'effectuer un match.
Cliquez sur le bouton
ou pour créer/editer un lieu. Un lieu doit comprendre au moins un emplacement.Cliquez sur le bouton Horaires pour créer/éditer un horaire. Dans la fenêtre de création/édition d'horaire, il est possible de sélectionner plusieurs jours en maintenant la touche CTRL enfoncée.
ou de la zoneCliquez sur le bouton Emplacements pour créer/éditer un emplacement.
ou de la zoneExemple 4.5. Exemple d'utilisation des lieux, horaires et emplacements
Dans le cadre d'un tournoi de rugby, le responsable de l'organisation du tournoi désire fournir sur le site Web les informations sur le lieu où se déroule le tournoi. Pour cela, il ajoute le lieu « Complexe sportif ». Celui-ci possède les horaires « Samedi de 9h à 12h », « Samedi de 14h à 18h » et « Dimanche de 15h à 18h » ainsi que les emplacements « Terrain 1 », « Terrain 2 » et « Terrain 3 ».
Rendez-vous dans l'onglet "Exportations et diffusions" pour configurer la publication des données sur un site Web.
Dans cet onglet, nous retrouvons la configuration des informations de programmation des matchs telles que : la durée d'un match, la durée de pause minimale d'un participant entre chaque match et la durée minimale qui sépare chaque match sur un même emplacement.
Les informations de programmation sont définis purement à titre informatif et ne sont pas pris en compte par ContestOrg pour une programmation automatique des matchs.
Dans cet onglet, nous retrouvons la configuration des propriétés des participants. L'objectif est de pouvoir palier au manque de propriétés proposées par défaut lors de la création d'un participant. Une propriété possède trois paramètres : son nom, son type (nombre entier, nombre décimal et texte) et s'il s'agit d'une propriété obligatoire.
Exemple 4.6. Exemple d'utilisation des propriétés de participant
Dans le cadre d'un tournoi de judo, le responsable de l'organisation du tournoi désire pouvoir renseigner le poids de chaque participant. Pour cela, il crée une propriété obligatoire « Poids » de type « Nombre décimal ». Ainsi, à la création d'un participant, son poids est demandé.
Dans cette fenêtre, nous avons le bandeau du haut et le bandeau du bas de disponibles. Dans le bandeau du haut, nous retrouvons les boutons
, , / , / et . Dans le bandeau du bas, nous retrouvons les boutons / et / ainsi qu'une liste déroulante permettant de changer le statut d'une ou plusieurs participants. Sur la zone dédiée aux données, nous retrouvons la liste des participants de la sélection courante.Pour l'utilisation du bouton Exportations à la volée. , rendez-vous dans le chapitre
Pour gérer les catégories, cliquez sur le bouton
. Dans cette fenêtre, nous retrouvons la liste des catégories que nous pouvons modifier avec les boutons , , , et . Les catégories définissent des groupes de participants qui ne pourront pas jouer ensemble.Notez qu'aucune opération ne peut être effectuée sur la catégorie « Défaut ». Il s'agit d'une catégorie neutre dans laquelle pourront être placées les participants qui ne sont pas encore affectés à une catégorie. Cette catégorie peut également servir de catégorie unique si votre tournoi de comprend pas de catégorie.
Exemple 4.7. Exemple de catégories
Dans le cadre d'un tournoi de judo, le responsable de l'organisation du tournoi doit mettre en place différentes catégories de joueurs qui ne joueront pas ensemble. Pour cela, il crée différentes catégories : « -50kgs », « 50-60kgs », « 60-70kgs », « +70kgs ».
Pour gérer les poules, cliquez sur le bouton Catégorie dédiée au choix de la catégorie, la zone Création des poules dédiée à la création des poules et la zone Affectation des équipes/Affectation des joueurs dédiée à l'affectation des participants au sein des poules.
. Dans cette fenêtre, nous retrouvons deux zones : la zoneCette zone permet de créer des poules manuellement ou automatiquement. Pour ajouter/éditer une poule manuellement, cliquez sur le bouton
ou . Pour créer automatiquement les poules, indiquez le nombre de poules désiré ou bien le nombre maximal de participants au sein d'une poule. Ces deux champs sont fortement liés, c'est pourquoi si vous modifier l'un, l'autre est impacté. Cliquez ensuite sur le bouton .Notez qu'aucune opération ne peut être effectué sur la poule « Défaut ». Il s'agit d'une poule neutre dans laquelle pourront être placés les participants qui ne sont pas encore affectés à une poule. Cette poule peut également servir de poule unique si votre tournoi de comprend pas de poule.
Cette zone permet d'affecter manuellement ou automatiquement les participants aux poules précédemment créées.
Pour affecter manuellement une ou plusieurs participants à une poule, sélectionner la poule de destination dans la liste des poules, sélectionnez les participants que vous désirez affecter à la poule dans la liste des participants disponibles puis cliquez sur le bouton
. Pour retirer un ou plusieurs participants d'une poule, sélectionnez les participants dans la liste des participants de la poule puis cliquez sur le bouton .Pour affecter automatiquement les participants aux poules, cliquez sur le bouton
. Pour éviter de générer des poules déséquilibrées, il est possible de définir des poids pour chacun des participants.Ajouter ajouter/éditer un participant, cliquez sur le bouton Catégorie et poule concernant le choix de la catégorie et de la poule de destination, la zone Informations de l'équipe/Informations du joueur concernant les informations propres au participant, la zone Propriétés personnalisées concernant les propriétés personnalisées et la zone Prix concernant les prix remportés. Pour sélectionner plusieurs prix, sélectionner les prix en maintenant la touche CTRL enfoncée. Notez qu'un participant doit avoir le statut homologuée pour pouvoir participer à un match.
/ ou / . Pour éditer un participant, vous pouvez également effectuer un double-clic sur la ligne dans la liste des participants. Dans la fenêtre de création/édition, nous retrouvons plusieurs zones : la zoneRendez-vous dans l'onglet "Propriétés de participants" de la fenêtre Configurer le concours pour éditer la liste des propriétés personnalisées. Rendez-vous dans l'onglet "Prix" de la fenêtre Configurer le concours pour éditer la liste des prix à remporter.
Pour importer une liste de participants, cliquez sur le bouton Catégorie et poule dédiée au choix de la catégorie et de la poule de destination, la zone Choix du fichier dédiée au choix du fichier contenant la liste des participants et la zone Équipes trouvées/Joueurs trouvés dédiée à la liste des participants trouvées dans le fichier spécifié. Notez que dans la liste des participants trouvés, vous pouvez déselectionner ceux que vous ne désirez pas importer.
/ . Dans la fenêtre d'importation des participants nous retrouvons trois zones : la zoneConcernant le format de fichier contenant la liste des
participants, il s'agit d'un fichier XML respectant
la DTD fournie dans le fichier
dtds/importer-participants.dtd
au sein du
répertoire de ContestOrg. La DTD est également
disponible sur le site Web de ContestOrg à l'adresse
http://www.elfangels.fr/contestorg/data/dtds/importer-participants.dtd
.
L'exportation "Module d'inscription" permet la mise en place d'un site web permettant l'inscription des participants et fournissant un fichier XML à importer dans ContestOrg.
Dans cette fenêtre, nous avons le bandeau du haut et le bandeau du bas de disponibles. Dans le bandeau du haut, nous retrouvons les boutons
, , , et . Dans le bandeau du bas, nous retrouvons les boutons et . Sur la zone dédiée aux données, nous retrouvons la liste des matchs de la sélection courante.Pour l'utilisation du bouton Exportations à la volée. , rendez-vous dans le chapitre
Pour créer/éditer une phase qualificative, cliquez sur le bouton Paramètres de la génération dédiée aux paramètres utilisés pour la génération, la zone Avancement de la génération dédiée à l'exécution de la génération et la zone Meilleure configuration trouvée dédiée à retourner les informations de la meilleure configuration trouvée.
ou . Lors de la création d'une phase qualificative, pensez à sélectionner la poule de destination au préalable. Dans la fenêtre de création de phase qualificative, nous retrouvons trois zones : la zoneContestOrg, quelque soit le mode de génération utilisé, prend en compte trois critères pour trouver la meilleure configuration :
Est-ce que les participants ont déjà joué ensemble ?
Est-ce que les participants sont de même niveau ?
Est-ce que les participants viennent de la même ville ?
Cette zone permet de configurer la génération. Deux paramètres sont disponibles : le mode de génération utilisée et la liste des participants.
Le mode avancé teste l'ensemble des configurations possibles. Dès que l'algorithme remonte une meilleure configuration que celle précédemment trouvée, celle-ci apparaît dans le cadre Meilleure configuration trouvée. Au delà de 12 participants, le temps de génération devient exponentiellement long. Vous pouvez arrêter la génération à tout moment et considérer la meilleure configuration trouvée jusque là.
Le mode basique est bien moins gourmand en ressource que le mode avancé. Il génère tous les couples de participants possibles et les trie en fonction des affinités des participants. L'algorithme séléctionne ensuite des couples retrouvés en haut de classement. Celui-ci peut donner de bon résultats mais il ne s'agit pas forcement de la meilleure configuration.
Cette zone permet de lancer/arrêter la génération. Pour lancer la génération de la configuration, cliquez sur le bouton Meilleure configuration trouvée est mise à jour en temps réelle.
. Pour arrêter la génération, cliquez sur le bouton . La barre de progression indique l'avancement de la génération. Au cours de la génération, la zoneCette zone permet de restituer la meilleure configurer trouvée ainsi que plusieurs indicateurs qui s'y rattachent. En plus cela, elle permet également de configurer manuellement la phase qualificative. Notez l'importance des couleurs : le rouge pour un problème, l'orange pour un avertissement et le vert pour signaler qu'aucun problème n'est détecté. Cette zone possède deux boutons qui peuvent s'avérer pratique : les boutons
et . Le bouton permet d'enregistrer en mémoire la configuration courante. Le bouton permet de restaurer la configuration enregistrée en mémoire précédemment.Pour créer/éditer un match, cliquez sur le bouton Équipes/Joueurs concernant le choix des deux participants, la zone Résultats concernant les résultats des deux participants, la zone Objectifs remportés concernant la liste des objectifs remportés par les deux participants, la zone Date concernant le date du match, la zone Lieu et emplacement concernant le lieu du match et la zone Détails concernant d'éventuels commentaires sur le match.
ou . Lors de la création d'un match, pensez à sélectionner la phase qualificative de destination au préalable. Pour éditer un match, vous pouvez également effectuer un double-clic sur la ligne dans la liste des matchs. Dans la fenêtre de création/édition de match, nous retrouvons six zones : la zoneRendez-vous dans l'onglet "Points et classement" de la fenêtre Configurer le concours pour éditer la liste des objectifs à remporter au cours d'un match.
Dans cette fenêtre, nous avons uniquement le bandeau du haut de disponible. Dans cet unique bandeau, nous retrouvons les boutons
, et . Nous retrouvons également une liste déroulante dans laquelle nous pouvons spécifier le nombre de participants lors de la génération. Dans la zone dédiée aux données, nous retrouvons un diagramme interactif représentatif des phases éliminatoires de la catégorie sélectionnée.Pour l'utilisation du bouton Exportations à la volée. , rendez-vous dans le chapitre
Pour créer les phases éliminatoires, sélectionnez la catégorie dans laquelle vous désirez générer les phases éliminatoires, sélectionnez le nombre de participants puis cliquez sur le bouton
. Pour réinitialiser les phases éliminatoires d'un catégorie, sélectionnez cette dernière puis cliquez sur le bouton . Si vous désirez modifier manuellement un participant, cliquez sur la case bleue associée à l'équipe puis sélectionnez le participant de votre choix dans la liste qui apparaît. Si le match qui suit est renseigné, il n'est plus possible d'éditer ce participant.Lors de la génération des phases éliminatoires, ContestOrg n'effectue par un tirage au sort. Il prend en compte le rang des participants aux phases qualificatives lors de sa génération. C'est à dire que l'algorithme de génération crée les matchs de manière à ce que si chaque participant gagne face à un participant de rang inférieur, celui-ci obtient le même rang obtenu lors des phases qualificatives. Imaginez que le participant de premier et de deuxième rang se rencontrent dès le début des phases éliminatoires, cela n'aurait pas de sens.
Pour renseigner les résultats d'un match, cliquez sur la case bleue associée au match. Dans la fenêtre d'édition du match, nous retrouvons six zones : la zone Équipes/Joueurs concernant les deux participants, la zone Résultats concernant les résultats des deux participants, la zone Objectifs remportés concernant la liste des objectifs remportés par les deux participants, la zone Date concernant le date du match, la zone Lieu et emplacement concernant le lieu du match et la zone Détails concernant d'éventuels commentaires sur le match. Cette fenêtre est identique la fenêtre d'édition d'un match d'une phase qualificative à la différence près que le choix des participants n'est pas possible car les deux participants affichés correspondent aux participants vainqueurs du match précédant. Si le match suivant est renseigné, il n'est plus possible de modifier les résultats car de nouveaux résultats seraient pas conformes avec les participants du match suivant.
Pour lancer une exportation prédéfinie, cliquez sur le bouton Fenêtre principale. Dans la fenêtre d'exportation, nous retrouvons la liste des exportations prédéfinies. Pour lancer une exportation, cliquez sur le bouton .
situé sur la barre lattérale sur la gauche de laRendez-vous dans l'onglet "Exportations et diffusions" de la fenêtre Configurer le concours pour éditer la liste des exportations prédéfinies.
Il n'est pas nécessaire de définir à l'avance une exportation pour la lancer. Pour cela, rendez-vous dans l'onglet de votre choix (Joueurs/Equipes, Phases qualificatives ou Phases éliminatoires) puis cliquez sur le bouton
. Les exportations affichées concernent l'onglet courant. Si vous désirez changer la catégorie du thème, il vous suffit de la séléctionner dans la liste prévue à cet effet. Choisissez le thème de votre choix, renseignez les différents paramètres puis cliquez sur le bouton . Il vous sera alors demander l'emplacement de destination.Pour démarrer une diffusion, cliquez sur le bouton Fenêtre principale. Dans la fenêtre de diffusion, nous retrouvons la liste des diffusions. Pour démarrer une diffusion, cliquez sur le bouton . Si une diffusion est active, le voyant associé est vert. Si une diffusion n'est pas active, le voyant associé est rouge. Pour arrêter une diffusion, cliquez sur le bouton . Pour afficher le résultat de la diffusion dans votre navigateur, cliquez sur le bouton . Notez que si une diffusion active est modifiée, celle-ci est automatiquement arrêté.
situé sur la barre lattérale sur la gauche de laRendez-vous dans l'onglet "Exportations et diffusions" de la fenêtre Configurer le concours pour éditer la liste des diffusions.
La possibilité de personnaliser entièrement les thèmes des
exportations et des diffusions est l'une des forces de
ContestOrg. Les thèmes des exportations sont
présents dans le répertoire themes/exportations
et
ceux des diffusions dans le répertoire
themes/diffusions
. Chaque répertoire représente un
thème.
Pour mieux comprendre la construction d'un thème, n'hésitez pas à prendre exemple sur les thèmes déjà existants.
Un thème doit comporter obligatoirement un fichier de
configuration intitulé configuration.xml
.
Celui-ci est écrit en XML et sa
DTD est disponible dans le fichier
dtds/configuration-theme.dtd
ou à l'adresse
http://www.elfangels.fr/contestorg/data/dtds/configuration-theme.dtd
.
Nous retrouvons dans ce fichier de configuration :
La catégorie du thème (optionnelle)
La liste des fichiers exportés ou diffusés
Les paramètres du thème demandés à l'utilisateur
Les différents fichiers définis dans le fichier de configuration
peuvent subir une transformation. La transformation est effectuée via
la technologie XSLT. Il vous suffit d'éditer une
feuille XSL et de l'associer dans le fichier de
configuration à une transformation. Référez-vous à la
DTD des données XML que vos
feuilles XSL auront à transformer dans le fichier
dtds/concours.dtd
ou à l'adresse
http://www.elfangels.fr/contestorg/data/dtds/concours.dtd
.
Les paramètres demandés à l'utilisateur seront passés à vos feuilles
XSL.
Il est possible de créer ses propres modèles de tournois et de
modifier les modèles de tournois existant. Les modèles de tournois sont
présents dans le répertoire templates
. Chaque
répertoire représente un modèle de tournoi dans lequel doit être
obligatoirement présent un fichier
configuration.xml
. Ce fichier est écrit en
XML et sa DTD est disponible dans
le fichier dtds/configuration-modele.dtd
ou à
l'adresse
http://www.elfangels.fr/contestorg/data/dtds/configuration-modele.dtd
.
Nous y retrouvons :
La description du modèle
La catégorie du modèle (optionnelle)
L'image du modèle (optionnelle)
La liste des variantes proposés à l'utilisateur
Pour mieux comprendre la construction d'un modèle, n'hésitez pas à prendre exemple sur les modèles déjà existants.
Table des matières
Organiser un évènement sportif, c'est partager un moment conviviale et rencontrer de nouveaux sportifs. Mais avant d'organiser quoi que ce soit, il est bon de définir le cadre de l'évènement ainsi que ses objectifs en répondant aux questions suivantes :
A qui s'adresse le tournoi ?
Quand aura lieu le tournoi ? Quelle durée ?
Quelle équipe d'organisation ?
Quel budget ? Des sponsors ? Des aides ?
Quels infrastructures ? Quels moyens ?
Combien de participants ? De visiteurs ?
Comment promouvoir l'évenement ?
Suite à ces interrogations, nous allons détailler certains points importants.
Pour un tournoi sportif, vous aurez besoin de salles de sport et de matériel. Il vous faudra donc obtenir des autorisations selon le lieu de votre événement. Vous choisir des créneaux horaires disponibles pour effectuer votre tournoi et vous assurer de disposer de suffisemment de temps pour mettre en place les différents dispositifs et remettre dans l'état la salle après le tournoi.
Pour la demande d'autorisation, effectuez la le plus tôt possible, au moins un ou deux mois avant l'événement ce qui vous laissera le temps de préparer le tournoi et de communiquer aux participants et visiteurs les diverses informations sur le où et le quand de l'évenement.
Comme tous les événements sportifs, votre tournoi doit être couvert par une assurance. Les assurances sportives sont spécifiques car vos participants doivent être couverts individuellement.
un tournoi sportif est un événement comme les autres, il faut mener une bonne campagne de communication auprès de potentiels visiteurs et participants. Pensez à commencer votre campagne assez tôt et à l'adapter avec la date limite des inscriptions. Plusieurs voies s'offrent à vous : des tracts, des encarts dans les journaux locaux, site web...
Pour mener à bien votre événement, il faut une bonne équipe d'organisation composée de :
encadrants pour les participants
arbitres pour les matchs
comptabilisateurs des scores
organisateurs des matchs
N'hésitez pas à prévenir les pompiers, la croix rouge ou la médecine préventive pour soigner les petits bobos ou pour prodiguer des conseils d'échauffement avant les matchs.
Certains diront qu'un tournoi sans buvette n'est pas un bon tournoi... Sachez que la loi Evin interdit tout débit à proximité de pratiques sportives. Optez donc pour les jus de fruits et autres boissons non alcoolisées.
Pour assurer une bonne ambiance durant tout l'événement, vous pouvez prévoir des animations dans les gradins pour les supporters. Pour cela, prévoyez du matériel (draps, marqueurs, papiers, agraphes...) et organisez le concours du plus beau drapeau de supporters, le concours de la mascotte... Pensez également à un présentateur et un disc jockey. Faites en sorte que le spectacle soit aussi dans les tribunes !
Un bon tournoi se termine toujours par une remise des prix : une coupe ou des cadeaux données par vos partneaires pour les participants en haut du podium. Il est également possible d'attribuer des prix spéciaux pour les participants portant des valeurs notables telles que le fair-play. Pensez à faire quelques photos de la remise des prix. Dans le discours final, n'oubliez surtout pas de remercier vos partenaires, votre équipe d'organisation et les participants.
Table des matières
L'équipe de ContestOrg n'est pas fermée. Elle est prête à accueillir tout nouvel arrivant désireux d'apporter sa contribution au projet. Quelque soit ses compétences, il pourra trouver un rôle adapté. Une chose est malgré tout requise : la motivation.
Liste des rôles :
Développeur : développe des fonctionnalités
Testeur : remonter des erreurs
Rédacteur : rédige de la documentation
Accompagnateur : aide les utilisateurs
Pour rejoindre l'équipe, contactez-nous en n'oubliant pas d'inclure vos motivations et vos compétences pour le(s) rôle(s) que vous désirez remplir.
Pas besoin de s'engager pour contribuer au projet. Il est tout à faire possible de contribuer occasionnellement. Il suffit de nous contacter si vous désirez faire un retour d'expérience, signaler des erreurs, proposer des améliorations ou promouvoir le projet. Sachez que vous pouvez également contribuer financièrement au projet.
Table des matières
Tableau 7.3. Liste des contributeurs occasionnels
Prénom/Nom | Tâche effectuée |
---|---|
Gaëlle Bély | Voix de la présentation vidéo |
Tableau 7.4. Liste des packs d'icônes utilisés
Nom | Page Web | Licence |
---|---|---|
Farm | Cliquez-ici | Creative Commons Attribution 3.0 |
Tableau 7.5. Liste des outils utilisés
Nom | Description | Page Web |
---|---|---|
Eclipse | Environnement de développement intégré | Cliquez-ici |
Google Code | Plateforme de développement collaboratif | Cliquez-ici |
TopCased | Outil de modélisation basé sur Eclipse | Cliquez-ici |
DocBook | Langage à destination de documentation technique | Cliquez-ici |
XMLMind | Editeur XML prenant en charge la DTD DocBook | Cliquez-ici |
Launch4j | Encapsuleur EXE de JAR pour la plateforme Windows | Cliquez-ici |
Pencil | Logiciel de maquettes d'interfaces graphiques | Cliquez-ici |
Inkscape | Editeur de dessins vectoriels | Cliquez-ici |
OptiPNG | Optimiseur pour images PNG | Cliquez-ici |
Pngnq | Optimiseur pour images PNG | Cliquez-ici |
Tableau 7.6. Liste des librairies utilisées
Nom | Description | Page Web | Licence |
---|---|---|---|
jGraph | Affichage de graphes | Cliquez-ici | BSD |
jDom | Manipulation du DOM XML | Cliquez-ici | Apache License |
jUnit | Réalisation de tests unitaires | Cliquez-ici | Common Public License 1.0 |
FOP | Processeur FOP | Cliquez-ici | Apache License |
HttpComponents | Création d'un serveur et de requêtes HTTP | Cliquez-ici | Apache License |
Commons Net | Réalisation de requêtes FTP... | Cliquez-ici | Apache License |
Log4J | Persistance de traces d'éxecution | Cliquez-ici | Apache License |
Saxon | Processeur XSLT autonome | Cliquez-ici | Mozilla Public License 1.0 |
Tableau 7.7. Sources utilisés
Contenu | Page Web |
---|---|
Chapitre "Guide d'organisation d'un tournoi sportif" | Le Pongiste avec l'autorisation de l'auteur |