Accueil
PyTournois est site web permettant de gérer/organiser un tournois. Le besoin de départ est un tournois de Volley Ball avec plusieurs équipes et un nombre de terrain limiter pour jouer. Dans le mode par défaut (le seul disponible pour le moment), chaque équipe rencontre toutes les autres équipes et on essaye de minimiser le temps d'attente entre les rencontres.
Il y a un nombre de points en fonction des victoires et des défaites. L'équipe perdante peut obtenir un bonus défensif, si elle marque plus de X points.
Tous les résultats et le classement sont accessibles à tout le monde. Il y a 4 types de rôles utilisateurs:
- superadmin: administrateur technique, peut tout faire :)
- organisation: peut créer des équipes et réinitialiser un tournois
- arbitre: peut enregistrer/modifier les résultats des matchs
- anonyme: accès à la liste des matchs et au classement
Si vous voulez voir à quoi cela ressemble, il y a un site de démonstration.
Expliquer le fonctionnement des grielles
Site de démonstration, il est réinitialisé tous les jours.
Vous avez la documentation ici: https://tournois.bonnegent.fr/static/docs/user/demo.html
L'affectation des terrains et l'organisation des matchs sont gérées par des grilles précalculées. Cela permet d'être rapide sur l'affectation des matchs et de ne pas gaspiller des ressources de calcul à chaque fois. L'inconvénient est que toutes les combinaisons de nombres d'équipes et nombre de matchs ne sont pas disponibles. On les ajoutera au fur et à mesure des demandes.
Détails techniques
PyTournois est un projet développé en Python/Django. Le site est propulsé grâce à Apache2, Python3 et Django5.
Liste des principaux logiciels utilisés:
- python 3.11
- poetry
- django 5
- docker (et docker compose) pour la partie développement
- mkdocs
- bootstrap table (https://bootstrap-table.com/)
Le code du projet se trouve ici: https://framagit.org/bonnegent/pytournois
Pour une gestion hors ligne du tournois, il est possible d'installer le projet sur un Raspberry et d'utiliser la puce Wifi pour permettre aux joueurs de se connecter facilement (pour suivre les matchs à venir et le classement en temps réel).