Refondation design-first du projet SIOP (v1 gelée) : - Playbook 00-vision (charte projet, personas, benchmark Atlas) - Playbook 01-cadrage (releases R0→R5 + DoD, user-story map, exigences, risques) - Playbook 02-design : charte graphique, tokens.css bi-thème (palettes analytics validées CVD/contraste par script), maquettes HD navigables (7 écrans dont démo-login DEMO_MODE, bilan codé, portail QR, mobile) Prochaine étape : validation des maquettes par le référent avant tout code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.5 KiB
SIOP V2 — GMAO ascenseurs (refondation design-first)
Contexte
Projet réel (SPELEV, maintenance d'ascenseurs, Maroc) mené par le Pr. Daaif (ENSET) avec ses étudiants. V2 = refondation de siop-spelev/siop (v1, gelée, référence de lecture seulement) décidée le 15 juillet 2026 : 100 % nouveau code, design en premier, documentation en « playbook » pédagogique. Double objectif : produit complet déployé (web + mobile + IA, Dokploy) et playbook du cycle de vie logiciel (cours ENSET + méthode de la future entreprise du référent).
Langue de travail : français (docs, échanges, commits descriptifs). Code et identifiants en anglais.
Principes non négociables (V2)
- Design-first : aucune ligne de code applicatif avant validation par le référent de la charte graphique, des tokens et des maquettes HD (
docs/02-design/). Chaque release subit une revue « pixel » écrans ↔ maquettes. - Playbook vivant : chaque phase du cycle de vie a son dossier
docs/0X-*/(template réutilisable + artefacts réels). Le journal quotidien vit dansdocs/journal/— jamais dans le livre. - Périmètre fermé par release : R0 Fondations → R1 Référentiel → R2 Exploitation → R3 Gestion → R4 Mobile → R5 IA. On n'ouvre pas Rn+1 avant recette et déploiement de Rn.
- Déployer tôt : chaque release part sur le serveur de production (Dokploy) dès sa recette.
- Le développeur est le premier utilisateur :
DEMO_MODE=trueactive un sélecteur de compte démo (connexion 1 clic sur les comptes seedés, endpointPOST /auth/demo-loginstrictement absent si l'env ne l'active pas). Critère : changer de rôle en < 3 s sans mot de passe.
Stack (ADR-001 — reconduite de v1 car éprouvée, code neuf)
pnpm + Turborepo. apps/api : NestJS, Prisma, PostgreSQL (pgvector + PostGIS), Redis, MinIO derrière l'interface FileStorage (jamais d'import direct du SDK). apps/web : React 19, Vite, TanStack Query/Table, shadcn/ui + Tailwind v4 thématisés par les tokens de docs/02-design/tokens.css, Lucide. apps/mobile : Expo (Expo Go). apps/ai : FastAPI (Python, uv). Règle d'or du contrat : schémas Zod dans packages/shared → OpenAPI committée → clients typés régénérés dans le même commit (CI bloquante).
Conventions
- Journal de bord : toute session se clôt par une entrée en tête de
docs/journal/journal.md(date — auteur — release/tâche ; Actions / Décisions / Prochaine étape). - Mode solo temporaire : commits directs sur
maintolérés ; à l'arrivée des étudiants → PR + CI obligatoires. - Commits conventionnels ; branches courtes
feat/…,fix/…. - Tests écrits avec le code : Jest (api), Vitest (web), jest-expo (mobile), pytest (ai) ; couverture backend ≥ 70 % bloquante ; parcours Playwright par release.
- API fermée par défaut (guard JWT global,
@Public()explicite) ; matrice de permissions en base. - Conformité loi 09-08 : géolocalisation limitée au service, purge des audios, consentements.
- IA : l'IA propose, un humain valide (sauf urgence « personne bloquée ») ; toute réponse RAG cite sa source.
État d'avancement
- 🔄 R0 — Fondations (en cours) : vision + cadrage + design (charte, tokens, maquettes HD) rédigés ; en attente de validation des maquettes par le référent avant tout code applicatif. Suivront : monorepo, CI, auth + permissions + démo-login, déploiement Dokploy « hello ».
- Dépôt GitHub :
siop-spelev/siop2(privé). Jalons R0→R5 créés.