Roadmap (source de vérité)
Ce document existe pour fournir un point d'entrée unique vers les plans et priorités, sans multiplier les "plans" redondants.
✅ Source de vérité
- Priorités produit / features :
docs/PRIORITES.md - Référence détaillée par domaine fonctionnel (CRM) :
docs/PLAN_AMELIORATIONS_CRM.md
🧱 Plan technique (backend)
- Structure & modularité backend (API vs Worker, tokens DI, queue separation, boot tests) :
docs/BACKEND_STRUCTURE_IMPROVEMENT_PLAN.md - Checklist PRs (implémentation) :
docs/BACKEND_STRUCTURE_IMPLEMENTATION_CHECKLIST.md
🎨 Plan technique (frontend)
- Refactoring et améliorations frontend :
docs/FRONTEND_IMPROVEMENT_PLAN.md - Prochaines étapes :
docs/FRONTEND_NEXT_STEPS.md
Règles
- On évite de maintenir plusieurs "plans" parallèles.
- Si un nouveau plan est nécessaire, il doit être court, actionnable, et référencer
PRIORITES.md.
📋 Plans par fonctionnalité
- Dashboard (revue) :
docs/DASHBOARD_REVIEW_PLAN.md- Plan de revue du dashboard d'accueil (audit, priorisation, UX, mobile). - Invitations et Amis :
docs/INVITATIONS_FRIENDS_IMPROVEMENTS.md- Plan d'améliorations pour le système d'invitations et d'amis - Authentification Client :
docs/CLIENT_AUTHENTICATION_PLAN.md- Système d'authentification client avec compte global, messagerie et espace fichiers - Proposal v2/v3 + add-ons par SessionType :
docs/PROPOSAL_V2_UPSELLS_IMPLEMENTATION_PLAN.md- Plan, état d'implémentation et roadmap (/proposal/:token|slug, builder dédié, email proposal, patch devis) - Décommissionnement legacy
/client:docs/CLIENT_LEGACY_DECOMMISSION_CHECKLIST.md- Checklist de cut (hard cut effectué, suivi post-cut et nettoyage résiduel) - Conformité fiscale (article 286 CGI, sans NF525) :
docs/fiscal/OVERVIEW.md- Plan exécutable attestation, conservation 6 ans, archivage fiscal et FAQ comptable
🚀 Dernières évolutions (février 2026)
-
Proposal v2 (socle) + add-ons par SessionType : ajout du socle backend pour proposals publics par token dédié (
/api/public/proposals/:token), configuration d’offres add-on par devis, sélection/apply/accept avec patch dequote_itemsen lignesADDONtraçables +quote_revisions, endpointuser-rates/addons-catalog, route frontend publique MVP/proposal/:token, migration Liquibase0187, et mise à jour OpenAPI (schemas + paths proposals). (✅ Backend + OpenAPI + Frontend MVP complétés - 2026-02-22)- Détail / état / prochaines phases :
docs/PROPOSAL_V2_UPSELLS_IMPLEMENTATION_PLAN.md
- Détail / état / prochaines phases :
-
Proposal v3 (builder dédié + email système + UX premium publique) : builder Proposal dédié (
/quotes/:quoteId/proposal), template systèmenew-proposal+ endpoints preview/send email, slug public (emails slug-first), invitation portail en fin de flow, auto-update/auto-apply des options, verrouillage read-only après acceptation, validité du lien alignée au devis, defaults de story section et multiples correctifs UX/calculs. (✅ Fonctionnel, polish/tests v3 restants - 2026-02-24)- Détail / état / correctifs :
docs/PROPOSAL_V2_UPSELLS_IMPLEMENTATION_PLAN.md
- Détail / état / correctifs :
-
Messagerie & fichiers conversation : UI unifiée
ClientThreadView(app/portail/contacts), previews d’images via URLs signées avec cache, modal plein écran, upload résilient (presigned + fallback backend), et refresh temps réel via événement WebSocket commun. (✅ Backend + Frontend complétés - 2026-02-04) -
Notifications Invitations & Amis + UX Portail client + Skeleton loaders : notifications in-app et email (invitation acceptée, demande d'ami reçue/acceptée) FR/EN selon locale ; fiche contact : fallback statut compte par email, bloc « Aucune adresse email » avec bouton « Modifier le contact » ; skeleton loaders listes contacts/sessions et dashboard. (✅ Backend + Frontend - 2026-02-26) —
docs/INVITATIONS_FRIENDS_IMPROVEMENTS.md,docs/FRONTEND_NEXT_STEPS.md
🚀 Dernières évolutions (mars 2026)
- Lead forms - stabilisation production : correction de la migration
guest_count, durcissement de la création automatique de contact à la réception d’une soumission, nouvelle action manuelle de création de contact depuis les soumissions, et meilleure reconnaissance UI du contact lié après rafraîchissement. (✅ Backend + Frontend - 2026-03-08/09) - Lead forms - intégration embed : simplification du snippet d’intégration publique vers une iframe fixe sans script de resize, avec comportement documenté pour les CMS qui filtrent les scripts. (✅ Frontend - 2026-03-08)
- Emails transactionnels - fiabilité : corrections build/runtime autour de
HtmlSanitizerServiceetUserEmailSenderService(sanitization HTML, wiring NestStorageCoreModule/HtmlSanitizerModule, stabilité de compilation backend). (✅ Backend - 2026-03-09) - Gouvernance docs / priorités : mise à jour des points d’entrée actifs pour solder le lot lead forms / emails et réorienter la roadmap vers Proposal v3, CRM pipeline et modales de création/édition. (✅ Docs - 2026-03-09)
🚀 Dernières évolutions (janvier 2026)
-
Messagerie globale + notifications différées : routes app agnostiques (
/client-messages/app/*), vue messages unifiée (contacts + amis), pastilles non‑lus, actions rapides (supprimer/voir profil), banner “compte client non créé”, email d’invitation avec aperçu si pas de compte, et notifications email différées configurables via sidebar settings. (✅ Backend + Frontend complétés - 2026-01-31) -
Revue complète portail client (Phases 3, 4, 5) : suppression des chaînes françaises hardcodées dans la messagerie (locale dynamique, clés i18n pour "Hier"/"Vous: "), ajout des clés de traduction manquantes (nav:
galleries/profile/logout, messages:yesterday/you/markReadError, files:downloadError/fileTooLarge), toasts d'erreur sur envoi message (client + photographe) et markAsRead, validation 10 MB côté frontend, fix clé download (uploadError→downloadError), hauteur responsive messagerie, badge "Invitation en attente" dans ContactCard, et defaultValues passés en anglais. (✅ Frontend complété - 2026-01-31) -
Harmonisation portail client / accès client : header aligné, heading “Votre espace sécurisé” + “Bienvenue,
{{name}}” sur les pages d’accueil, galeries ajoutées côté portail (route/portal/galleries, dashboard + vue séance), paiement par virement visible dans le portail (documents + séance) même sans IBAN, et donnéesgalleryUrl/galleryPassword+invoice.bankDetailsexposées par l’API. (✅ Backend + Frontend complétés - 2026-01-31) -
Portail client (durcissement accès + UX) : validation d'invitation côté portail (endpoint dédié), re‑invitation qui invalide l'ancien token, login client accessible sans redirection vers
/login, thème réellement appliqué partout (tokensbackground/foreground/muted), pages portail harmonisées (liens légaux sous le bloc de connexion, largeur fichiers alignée). (✅ Backend + Frontend complétés) -
Refactoring hooks quotes/invoices : Uniformisation des clés React Query, séparation API globale vs session, tests unitaires complets (22 tests), rétrocompatibilité assurée (✅ Frontend complété)
-
Correction casse fichiers : Correction du problème de casse des fichiers (table.tsx → Table.tsx) pour résoudre les erreurs
import/no-unresolveden CI GitLab (✅ Frontend complété) -
Migration shadcn/ui complétée : Migration complète de tous les composants UI vers shadcn/ui pour assurer une cohérence visuelle et fonctionnelle. Tous les composants de base (Button, Dialog, Sheet, ScrollArea, Progress, Tabs, Checkbox, Tooltip, Command, etc.) utilisent maintenant les primitives shadcn/ui. Les composants métier (ConfirmationDialog, StatusBadge, ProgressionBar, MobileSidebar) utilisent les composants shadcn en interne. (✅ Frontend complété)
-
Navigation breadcrumb améliorée : Composant breadcrumb réutilisable avec support mobile/desktop, navigation contextuelle pour quotes et invoices avec liens vers sessions/contacts parents (✅ Frontend complété)
-
Liens portail client : Génération de liens portail client pour contracts, invoices et quotes avec partage sécurisé via tokens (✅ Backend + Frontend complétés)
-
Génération PDF directe : Génération PDF directe pour invoices et quotes avec endpoints dédiés et URLs signées temporaires (✅ Backend + Frontend complétés)
-
Améliorations système d'export : Amélioration du styling, gestion des statuts, interface utilisateur améliorée et support des exports planifiés avec templates (✅ Backend + Frontend complétés)
-
Synchronisation migrations Liquibase : Endpoint admin pour synchroniser les logs de migration depuis la table
databasechangelogde Liquibase (✅ Backend + Frontend complétés) -
Réinitialisation de mot de passe : Système complet avec tokens sécurisés (chiffrement AES-256-GCM, hash SHA-256), expiration 60 minutes, utilisation unique, interface frontend complète (✅ Backend + Frontend complétés)
-
Améliorations landing page : Sections animées avec effets de transition et background avec particules animées (✅ Frontend complété)
-
Système d'import complet : Import CSV/Excel pour toutes les entités (Contacts, Sessions, Quotes, Invoices) avec interface frontend complète, boutons d'import intégrés dans toutes les pages de liste, dialogs spécialisés par entité, hooks React Query pour chaque type d'import (✅ Backend + Frontend complétés)
-
Système d'invitations et d'amis : Système complet d'invitations avec solde (5 invitations de base, gain via progression), codes d'invitation, amitiés mutuelles automatiques lors des invitations, limitation de l'ajout aux organisations aux amis uniquement, panneau latéral avec onglets Chat/Amis (✅ Backend + Frontend complétés)
-
Système de progression : XP, niveaux, badges, défis, classements et Aaperture Coins pour engager les utilisateurs (✅ Backend + Frontend complétés)
-
Système d'organisations : Partage de ressources (sessions, devis, factures, contrats, contacts) entre utilisateurs via organisations avec permissions granulaires (✅ Backend + Frontend complétés)
-
Corrections de linting : Toutes les erreurs de linting corrigées, composant
Formshadcn/ui créé, dépendancesreact-hook-formet@hookform/resolversinstallées -
Settings contextuels avec Sidebar : Intégration complète des panneaux de settings directement dans toutes les vues principales avec
ContextualSettingsSidebar, pattern uniforme avec Insights, réduction de la navigation vers des pages séparées. Bouton Settings (icône roue crantée) ajouté dans les headers avec pattern uniforme (size="icon", variantoutline, icôneSettingsde lucide-react, textesr-onlypour accessibilité). AdminPanelPage : sidebar retirée (2026-01-29) car la page Admin est déjà une page de configuration. (✅ Frontend complété pour InsightsPage, UserViewPage, SessionViewPage, OrganizationViewPage et DashboardPage - 2026-01-29)
🚀 Évolutions précédentes (décembre 2025)
- Portail client renforcé : statut des devis/contrats/factures traduit côté client, brouillons masqués, téléchargement PDF disponible sur chaque document et texte revu pour clarifier l'état ("Signé", "En attente", "Payé").
- Paiement des factures : flux PayPal embarqué côté client (activé uniquement si le user a un token valide), informations bancaires auto-affichées sinon, mise à jour automatique du statut lorsque PayPal notifie un paiement et possibilité de modifier manuellement le statut (paiement virement/espèces/autre).
- Maintenance des liens client : carte "lien expiré" en plein écran, suppression du bouton retour, rafraîchissement du lien envoyé par mail, logs clarifiés et champ
last_regenerated_atgéré par la migration, correction des erreurs 401/502 lors du chargement. - Expérience UI : thème sombre appliqué dès le boot grâce à la persistance localStorage + fallback "prefers-color-scheme", overlay de chargement opaque pour éviter les flashes, traduction
common.loading, et footer client affichant le nom de l'app plutôt que "Portail Client". - Facturation Back‑Office : formulaire facture avec statut obligatoire placé à côté des dates, filtrage des contrats/devis/factures
DRAFT, actions "Marquer comme payé/non payé" envoient unpaid_atformaté (YYYY-MM-DD) et déclenchent une invalidation de cache cohérente (useQuotesInvoicesrefactorisé).
🚧 En cours (T1 2026)
- Système d'Authentification Client ✅ PHASES 1→5 COMPLÉTÉES
- Compte global : Un email = un compte, le client voit toutes ses séances avec tous ses photographes
- Phases 1→5 : Auth, Séances/Docs, Messagerie, Fichiers/Préférences, Côté Photographe (invitations)
- Documentation :
docs/CLIENT_AUTHENTICATION_PLAN.md - Routes :
/portal/login,/portal/dashboard,/portal/sessions,/portal/documents,/portal/messages,/portal/files,/portal/settings
🔮 Implémentations à venir (T1 2026)
-
Refonte chat agent (commandes en /) ✅
- ✅ Commandes explicites
/contact,/session,/devis,/facture,/aideavec flux guidés et formulaire structuré.
- ✅ Commandes explicites
-
Sécurisation des données (agent) ✅
- ✅ Validation stricte : contact (email requis), session (start_date, title, location requis). Interdiction de créer un contact si l’email existe déjà.
-
Gestion des doublons (contacts) ✅
- Workspace de fusion (
/contacts/duplicates) avec preview, arbitrage des conflits et réattribution détaillée — finalisé.
- Workspace de fusion (
-
Paiements & relances
- Consolider le support PayPal (retour webhook détaillé, notifications client) et ouvrir la voie aux paiements par lien bancaire/Stripe (uniquement côté user).
- Ajouter un statut "Paiement partiel" + suivi des acomptes, et déclencher des relances automatiques sur les factures en retard côté portail client.
-
Portail client (post‑MVP)
- Mode offline/“app shell” léger pour éviter les 401 lors des refreshs mobiles, mise en cache des documents fréquemment consultés.
- Historique des actions (régénération de lien, téléchargements, paiements) visible par le user dans le back-office.
-
Proposal v3 - Tests / QA / polish final 🚧
- Finaliser les tests backend/E2E v3 (
preview-email,send-email, invitation finale, slugs, read-only). - QA UX/public proposal (states
SENT/ACCEPTED, totaux, loaders, navigation mobile/desktop). - Consolider les wrappers/templates email (footer commun et cohérence rendering).
- Suivre le post-cut legacy
/client(monitoring, nettoyage docs/OpenAPI restant, comms internes si besoin).
- Finaliser les tests backend/E2E v3 (
-
Centralisation des thèmes
- Exporter la préférence de thème utilisateur dans les paramètres d'équipe, ajouter un switch "auto/system" côté client, et documenter le comportement dans
docs/FRONTEND.md.
- Exporter la préférence de thème utilisateur dans les paramètres d'équipe, ajouter un switch "auto/system" côté client, et documenter le comportement dans
-
Refactor hooks quotes/invoices ✅ COMPLÉTÉ
- ✅ Uniformisation des clés React Query (convention uniforme :
["quotes", "list"],["quotes", "detail", id], etc.) - ✅ Séparation API globale vs par session (hooks séparés :
useAllQuotes/useSessionQuotes,useAllInvoices/useSessionInvoices) - ✅ Tests unitaires complets pour les fonctions d'invalidation et les nouvelles clés
- ✅ Vérification que les exports CSV/PDF n'utilisent pas React Query (fetch direct)
- ✅ Rétrocompatibilité assurée (anciens hooks
useQuotes/useInvoicesmaintenus mais dépréciés)
- ✅ Uniformisation des clés React Query (convention uniforme :
-
Sécurité & monitoring
- Logger tous les changements liés aux accès clients (régénération de lien, email envoyé, tentative invalide), exposer un dashboard "Client Access Health" et intégrer ces métriques dans
docs/AGENTS_SECURITY.md.
- Logger tous les changements liés aux accès clients (régénération de lien, email envoyé, tentative invalide), exposer un dashboard "Client Access Health" et intégrer ces métriques dans
-
Élargissement événementiel (planification)
- Planifier l’évolution du produit pour d’autres métiers de l’événementiel (traiteurs, DJ, wedding planners). Terminologie configurable, champs communs vs spécifiques, portail "client événementiel". Voir PLAN_AMELIORATIONS_CRM.md section "Élargissement multi-métier".
👉 Chaque bloc ci-dessus doit être décliné dans les plans détaillés (FRONTEND_IMPROVEMENT_PLAN.md, BACKEND_STRUCTURE_IMPROVEMENT_PLAN.md, PRIORITES.md) avant implémentation.