Files
siop2/docs/01-cadrage/exigences.md
pr-daaif 04e61056f6 docs(r0): kickoff SIOP V2 — vision, cadrage, charte graphique, maquettes HD
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>
2026-07-15 21:06:33 +01:00

2.8 KiB
Raw Blame History

Exigences non fonctionnelles — SIOP V2

Rôle de ce document (playbook) : les exigences fonctionnelles vivent dans la user-story map et les issues ; ici on fige ce qui est transversal — qualité, sécurité, conformité, exploitation — avec des critères mesurables (sinon invérifiables).

Qualité & design

Exigence Critère mesurable
Fidélité au design Revue pixel par release : écrans conformes aux maquettes validées (../02-design/)
Réactivité Interfaces utilisables de 360 px (mobile) à 1920 px ; tables scrollables sans casser la page
Thème Clair et sombre, pilotés par les tokens ; aucun style codé en dur hors tokens
Accessibilité Navigation clavier sur les parcours critiques ; libellés/aria sur tous les contrôles ; contraste AA
Langue 100 % français (produit), zéro franglais dans l'UI

Performance

Exigence Critère
Chargement des listes < 1 s pour 10 000 OT (pagination serveur, index SQL)
Tableau de bord < 2 s (agrégations SQL, jamais de calcul en mémoire sur tout l'historique)
Mobile offline Ouverture d'un OT déjà synchronisé : instantanée (< 200 ms, lecture locale)

Sécurité

Exigence Critère
API fermée par défaut Guard JWT global ; routes publiques explicitement @Public() ; test de couverture des routes
Permissions Matrice rôles × objets × droits en base (jamais dans le JWT), testée rôle par rôle
Démo-login POST /auth/demo-login inexistant (404) si DEMO_MODE n'est pas true ; jamais activé en production réelle ; test e2e dédié
Fichiers Accès aux objets MinIO uniquement par URL signée à durée courte ; clés opaques
Secrets Jamais en git ; .env.example exhaustifs ; secrets Dokploy

Conformité (loi 09-08)

Consentement explicite pour toute géolocalisation ; géolocalisation limitée aux heures de service ; purge des enregistrements audio après transcription (R5) ; droit d'accès/rectification des données personnelles (procédure au runbook).

Fiabilité & exploitation

Exigence Critère
Sauvegardes PostgreSQL + MinIO sauvegardés quotidiennement ; restauration testée 1×/release (runbook)
Migrations prisma migrate deploy rejouable ; seed idempotent (rejouer ne casse rien)
Offline mobile Aucune saisie terrain perdue : file locale + verrou optimiste + rejeu (testé)
Supervision Endpoint /health (base, Redis, MinIO) ; vérifié au déploiement

Testabilité

Pyramide : unitaires (logique pure), intégration contre infra réelle (Docker), parcours navigateur Playwright (1+ par release), mobile testé en Node (node:sqlite), contrat OpenAPI bloquant en CI. Couverture API ≥ 70 % bloquante. Chaque bug corrigé = un test qui l'aurait attrapé.