1.4 KiB
1.4 KiB
Domaine — Borne (kiosk)
Perimetre
Front client tactile (Bloc 1) : parcours welcome -> categories -> produit -> panier -> confirmation. HTML/CSS/JS vanilla, servi en statique par Apache.
Ce qui est livre
- Pages :
index,categories,products,product,cart,payment,confirmation(src/public/borne/). - JS modules ES6 (
assets/js/) :data.js(chargement, point de swap P4),state.js(panier),page-*.js,nav.js, etallergens.js(modale generale 14 INCO sur carte et fiche). - Donnees : JSON statiques (
data/) en P5 ; basculent sur/api/*DB-backed au swap P4.
Regles metier / conventions
- Allergenes : info generale (les 14 INCO, reglement UE 1169/2011), pas un calcul
par produit (mapping
ingredient_allergendiffere). - CSP-safe pour le code projet : pas de script inline ajoute (donnees via
data-*,addEventListener). Source allergenes = liste fixedata/allergens.json, se branchera sur/api/allergensau swap P4.
Tests
Harnais front node:test + jsdom (tests/js/allergens.test.js) : 14 INCO, bouton "i",
ouverture/fermeture (bouton/overlay/Echap), idempotence. Job CI js-tests (Node 20).
Decisions
Swap point P5 -> API au P4 (cf. data.js + journaux). Modele = app self-hostable
(ADR-0009).
Tables (au swap P4)
category, product, menu + allergen (lecture). Aujourd'hui : JSON statiques.