Aller au contenu principal

Engineering Handbook

Guide de référence officiel pour tous les développements de l'écosystème DMV.

StatutActif — v1.0 — 2026-06-27
PrioritéP0
ResponsableSylvain

Périmètre

Ce handbook s'applique à tous les projets DMV présents et futurs :

  • dmv-public — Site public Next.js
  • dmv-workspace — Mon Espace (Next.js)
  • api — API Laravel
  • Coach, AssoSuite, PlayLoop — Applications futures

Principe directeur

Simplicité avant sophistication. Un moteur unique plutôt que plusieurs implémentations. Ce qui ne peut pas être maintenu pendant 3 ans ne doit pas être créé.

Handbook

DocumentRôlePriorité
StandardsCode, qualité, architectureP0
Playbook GitBranches, commits, PRP0
Playbook CIGitHub Actions, pipelinesP0
Playbook TestingStratégie de testsP1
Playbook PlaywrightTests E2E, parcours critiquesP1
Playbook SecuritySécurité CI/CD, dépendances, secretsP0
Playbook MonitoringSurveillance post-déploiementP1
Playbook BackupSauvegardes et restaurationP0
Playbook ReleaseDéploiement, rollbackP0

Checklists

DocumentRôle
Release ChecklistVérifications avant chaque mise en production
Onboarding ChecklistMise en place d'un nouveau développeur
Server ChecklistConfiguration d'un nouveau serveur

Epics

DocumentRôle
EPIC-001 — Restructuration DMV CorePilotage du chantier de restructuration backend autour des Bounded Contexts

Specs

DocumentRôle
ENG-001.1 — Audit DMV CoreAudit et plan de restructuration backend avant migration DMV Core
ENG-001.1 — Rapport d'audit DMV CoreRésultat de l'audit DMV Core, violations et plan de PR
ENG-001.2 — Contrats inter-contextesIntroduction des contrats publics entre Bounded Contexts
ENG-001.2 — Rapport d'implémentationContrats créés, bindings Laravel et validations de PR-001
ENG-001.3 — Découplage Actor → MonetizationSuppression de l'écriture directe d'Actor dans actor_subscriptions (PR-002)
ENG-001.3 — Rapport d'implémentationContrat ensureFreeSubscription(), arbitrage architecte et validations de PR-002
ENG-001.4 — Territory Bounded ContextSpécification : mise en conformité de Territory (écritures croisées vers Actor et données municipales), arbitrages à valider
ENG-001.4 — Rapport d'implémentationContrats ActorWriter::applySireneRefresh() / ActorReader::findById|findBySiret|findBySiren, tests et validations
ENG-001.5 — Extraction de Municipal ManagementSpécification : cartographie du métier municipal fragmenté (Mairie/Territory/Admin/Actor), découpage de PR proposé, arbitrages à valider

Templates GitHub Actions

Copier dans .github/workflows/ du projet cible.

TemplateUsage
frontend-ci.ymlCI Next.js — lint, typecheck, build
backend-ci.ymlCI Laravel — Pint, PHPStan, tests
playwright.ymlTests E2E Playwright
security.ymlDétection secrets, audit dépendances