Aller au contenu principal

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é

  • 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

🚀 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 (uploadErrordownloadError), 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 projet), paiement par virement visible dans le portail (documents + projet) même sans IBAN, et données galleryUrl/galleryPassword + invoice.bankDetails exposé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 (tokens background/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-unresolved en 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 databasechangelog de 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 Form shadcn/ui créé, dépendances react-hook-form et @hookform/resolvers installé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", variant outline, icône Settings de lucide-react, texte sr-only pour 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_at gé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 un paid_at formaté (YYYY-MM-DD) et déclenchent une invalidation de cache cohérente (useQuotesInvoices refactorisé).

🚧 En cours (T1 2026)

  1. Système d'Authentification ClientPHASES 1→5 COMPLÉTÉES
    • Compte global : Un email = un compte, le client voit tous ses projets avec tous ses photographes
    • Phases 1→5 : Auth, Projets/Docs, Messagerie, Fichiers/Préférences, Côté Photographe (invitations)
    • Documentation : docs/CLIENT_AUTHENTICATION_PLAN.md
    • Routes : /portal/login, /portal/dashboard, /portal/projects, /portal/documents, /portal/messages, /portal/files, /portal/settings

🔮 Implémentations à venir (T1 2026)

  1. 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.
  2. 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.
  3. 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.
  4. Refactor hooks quotes/invoicesCOMPLÉ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/useInvoices maintenus mais dépréciés)
  5. 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.

👉 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.