Importez une instance pour commencer.
L’instance seule permet déjà d’explorer les données.
Vos soutenances, en un coup d’œil
Aucune donnée chargée. Vos fichiers restent dans ce navigateur.
Plan de salle
Importez vos données ou découvrez la mini-démo.
Contrôles de cohérence En attente de fichiers
Mode d’emploi et conventions
- Ouvrez ce fichier HTML dans un navigateur récent. Aucune installation n’est nécessaire.
- Chargez un fichier d’instance JSON, puis une solution JSON portant le même identifiant.
- Changez de point de vue, de phase, de journée ou de ressource. Cliquez sur une affectation pour en voir le détail.
- Ouvrez les contrôles de cohérence et utilisez le validateur Python fourni pour la validation de référence.
Charger une nouvelle instance efface la solution précédente. Un import invalide ne remplace pas les données en cours. « Tout effacer » vide l’application et les sélecteurs de fichiers.
Confidentialité. Lecture locale via le navigateur : aucun téléversement de vos fichiers JSON, aucune requête réseau de l’application après chargement de la page, aucun stockage persistant des données importées. Fermer ou recharger la page efface les données chargées.
Modèle 3.0. Les présoutenances se déroulent en ligne, avec room_id : null et sans aucune contrainte de salle. Seules les finales utilisent une salle physique. Chaque séance occupe exactement un créneau, quelle que soit sa phase. Les journées de présoutenance et de finale sont fixées dans deux périodes communes distinctes ; toutes les présoutenances précèdent toutes les finales.
Indicateurs. Les cartes résument toujours l’ensemble de la solution, indépendamment des filtres. Les temps creux sont calculés par enseignant et journée, toutes phases confondues, entre la première et la dernière soutenance. Aucun créneau intérieur n’est exclu, même indisponible. Le tableau donne une lecture accessible alternative à la frise.
Nombres JSON. Tous les nombres du modèle s’écrivent sous forme entière, sans point ni exposant : 3 est accepté, 3.0 et 3e0 sont refusés. Les entiers doivent être compris entre −9007199254740991 et 9007199254740991, puis respecter les bornes du champ. Les nombres dans les chaînes de caractères ne sont pas concernés.
Validation. Le contrôle JavaScript aide à explorer les données ; seul le validateur Python fait foi. Les objectifs d’une solution infaisable ne sont pas comparables. Les identifiants et les horaires sont affichés sans être exécutés.
Mini-démo. Un exemple pédagogique réduit, distinct des instances à résoudre. Ce n’est ni une solution de référence ni un solveur.