Allergenes : AllergenRepository::all() et presentAllergen exposent desormais la
description (deja en base + seed) ; data.js consomme /api/allergens (via
fetchCollection) au lieu du JSON statique. La borne a une source unique pour les
allergenes.
Menage : suppression des fichiers de donnees morts (allergens.json,
categories.json, produits.json) que plus aucun code vivant ne lisait. README de
data/ reecrit ; commentaires perimes corriges (products.html, categories.html) ;
conventions.md (endpoints catalogue/allergens passes en livre) et
maquette-vs-build.md (panneau persistant, composeur modal, chevalet livres ;
product.html et cart.html retires) realignes sur l'etat reel du code.
Tests : allergens.test.js mocke /api/allergens (forme borne) + fixture inline ;
CatalogueControllerTest asserte la cle description ; AllergenReadDbTest renforce.
JS 112, PHP unit 405, PHPStan L6.
- docs/merise/_sources/ : raw JSON sources (categories + produits)
preserved unchanged for jury traceability, plus provenance note
documenting 7 typos in image refs and gaps to address at the MCD
phase (no FK, float prices, missing menu composition, etc.)
- docs/design/ : Figma maquette PDF (renamed without accent) plus
README pointing to the live Figma URL
- src/public/borne/assets/images/ : 71 visual assets (53 produits +
9 categories + 9 UI) normalized to kebab-case lowercase to avoid
the case-sensitive Linux pitfall in Docker production
The 'wacdo' naming from the school brief is preserved only inside
docs/merise/_sources/ for traceability. The rest of the project keeps
the canonical 'Wakdo' naming.
TODO P1: rename cheesecake-choconuts-m&m-s.png (the & breaks URLs
without percent-encoding); will be fixed during seed normalization.