Apparence
14. Exigences non-fonctionnelles observées
La colonne de gauche liste l'exigence ; les observations distinguent l'existant v1 de la cible v2 quand la stack change la donne.
| Catégorie | v1 (existant) → v2 (cible) |
|---|---|
| Rendu | v1 : Server Components + dynamic = 'force-dynamic'. v2 : Next.js 16 (App Router) pour le shell + queries Convex réactives → données en temps réel, sans re-fetch manuel. |
| Performance | v1 : mises à jour optimistes manuelles + revalidatePath. v2 : réactivité Convex native (plus d'optimistic à écrire), pagination (convex-helpers), index Convex sur les colonnes de filtre. |
| Résilience | v1 : repli sur données mock (TRIMET) + rollback Storage manuel. v2 : backend managé Convex ; uploads fiabilisés par action-retrier. |
| Accessibilité | v1 : ❓ non traitée (styles inline, dépendance à la couleur). v2 : primitives @recette/ui (base a11y de type Radix/shadcn) — meilleure assise, mais conformité RGAA/WCAG formelle toujours ❓ à valider. |
| Responsive | v1 : ❓ styles inline à largeurs fixes. v2 : Tailwind 4 (utilitaires responsive) → design adaptable par défaut. |
| Thème | v1 : pas de mode sombre. v2 : clair/sombre (packages/ui theme.tsx). |
| Navigateurs | ❓ Non spécifié (cible desktop probable). |
| SEO | Non applicable (application privée derrière authentification). |
| i18n | Français uniquement (inchangé). |
| Observabilité | v1 : console.log/console.error laissés en place. v2 : logs & insights du dashboard Convex (exécutions de fonctions, erreurs) — observabilité structurée. |
| Typage | v1 : JavaScript. v2 : TypeScript strict de bout en bout (schéma → fonctions → UI), Zod partagé. |