📖 Glossaire
Empilable — d'autres palettes peuvent être posées sur cette palette. Poids max supporté dessus — poids total que la palette peut porter au-dessus d'elle ; à 0, rien n'est empilé dessus même si "Empilable" est coché (valeur prudente par défaut, jamais supposée). Rotation 90° — la palette peut être tournée à plat pour mieux s'ajuster à la largeur du camion (elle reste toujours debout, jamais couchée sur le côté). Priorité de déchargement — plus la valeur est basse, plus la palette sera déchargée tôt lors de la tournée ; en mode de tri "Ordre de déchargement", les priorités basses sont chargées en dernier (donc placées côté porte). Niveau — 0 = posé au sol, 1 = empilé sur une palette du niveau 0, etc.
🚀 Installer et lancer
Double-cliquez sur Lancer-Application.bat (ou directement sur
index.html) — aucun serveur ni installation requise pour l'app elle-même.
🗺️ Comment c'est construit
Application HTML/JS locale, un seul fichier index.html (pas de build,
pas de dépendance externe, pas de bibliothèque de bin-packing tierce). Le moteur de calcul
(fonctions computePacking / computeMetrics) place les palettes au
sol par une heuristique d'étagères (tri par encombrement décroissant, puis rangées successives
le long du camion), puis empile ce qui reste, colonne par colonne, strictement à l'aplomb de
la palette du dessous. Ce n'est pas un solveur d'optimisation global (pas d'OR-Tools) : c'est
une heuristique simple, rapide et auditable — voir CONTEXTE.md pour la
justification de ce choix et ses limites documentées.
📁 Les fichiers du dossier
index.html — l'application. eula.html — licence.
help.html — cette page. CONTEXTE.md — historique des décisions.
CHANGELOG.md — journal des évolutions. test_*.py — suite de
non-régression. Lancer-Application.bat — lanceur.
✏️ Demander une modification à Claude Code
Décrivez le changement souhaité en langage naturel. Claude Code lit CONTEXTE.md
et ../CLAUDE.md pour les conventions, édite index.html, relance
test_*.py, puis journalise dans CHANGELOG.md.
✅ Tests de non-régression
Depuis ce dossier : python3 test_chargement_camion.py. Vérifie le manifeste
de fichiers, l'absence de ressources externes, l'absence de secrets codés en dur, l'autonomie
vis-à-vis des autres projets, et — via Node.js — le moteur de calcul réel sur des scénarios
calculés à la main (sol exact, empilage, dépassement de capacité, limite de poids, rotation
nécessaire, hauteur impossible, équilibre avant/arrière, les deux stratégies de tri).
🖱️ Vérification visuelle
Ouvrez index.html dans un navigateur, parcourez chaque onglet, vérifiez
qu'aucun tableau/carte ne reste vide de façon inattendue.
🛠️ Dépannage
"Aucune orientation ne rentre" / palette signalée impossible — vérifiez si
"Rotation 90°" est coché : certaines palettes ne rentrent que dans un sens. Beaucoup de
palettes non placées alors que le camion semble avoir de la place — vérifiez la case
"Empilable" et le "Poids max supporté dessus" (0 = rien ne peut être empilé, même si la palette
du dessous est cochée "Empilable"). La page reste sur les valeurs par défaut au
lancement — normal la première fois ; vos saisies sont ensuite conservées dans le
navigateur (localStorage) d'une session à l'autre, sur ce poste.
🔒 Sécurité
Aucune donnée envoyée à un serveur distant ; tout reste local dans le navigateur
(localStorage). Voir Charte_IA.md pour les
règles d'usage de l'IA sur ce projet.