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
  • Chat / assistant CRM : docs/REFONTE_CHAT_AGENT.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.

Vague A cleanup (2026-07) — décisions​

Carte détaillée : APP_CLEANUP_MAP.md.

ItemStatut
Progression / gamification + recommendations (Cmd+K)DONE — code deleted (tables → later DB wave)
BillingDONE — export comptable CSV (not Pennylane in-app); see ACCOUNTING_EXPORT_GUIDE.md
SMSDELETED (2026-09-06) — templates, Twilio/Vonage sending, workflow SMS tasks; see APP_CLEANUP_MAP.md Vague E
Friends (web + BE + /mobile/network)KEEP — mobile Circles MVP mutations done
Gmail Workspace Add-onFREEZE — scope à part / plus tard — keep plan+code; dedicated MR only — GMAIL_PLUGIN_IMPLEMENTATION_PLAN.md
Doublons / DiscordBE KEEP — web FE deleted; port mobile backlog (reuse /duplicates + Discord APIs)

📋 Plans par fonctionnalité​

  • Invitations et Amis : docs/INVITATIONS_FRIENDS_IMPROVEMENTS.md - KEEP; port mobile via /mobile/network
  • Proposal (commercial product) : DELETED (FE/BE + Liquibase 0277) — plan PROPOSAL_V2_UPSELLS_IMPLEMENTATION_PLAN.md removed; day-planner client proposals KEEP; R2 GC optional — APP_CLEANUP_MAP.md Vague C
  • Billing / export comptable : export CSV first — docs/ACCOUNTING_EXPORT_GUIDE.md / Vague 6 in docs/APP_CLEANUP_MAP.md (Pennylane in-app deleted)
  • Storage abstraction / Scaleway : docs/PLAN_AMELIORATIONS_CRM.md - Lot détaillé provider stockage (StorageProvider, R2StorageProvider, ScalewayStorageProvider) et migration progressive
  • Plugin Gmail natif (dans Gmail) : docs/GMAIL_PLUGIN_IMPLEMENTATION_PLAN.md - FREEZE — scope à part / plus tard (ne pas mélanger aux MRs cleanup)
  • 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

🗂️ Journaux historiques​

  • Les plans terminés ou remplacés ne sont plus conservés comme fichiers parallèles dans docs/ : l’historique détaillé est dans git ; la carte produit actuelle est dans APP_OVERVIEW.md.
  • Le journal détaillé du portail client reste consultable dans docs/CLIENT_AUTHENTICATION_PLAN.md, mais ne doit plus piloter les implémentations courantes.

🧭 Décisions structurantes 2026​

  • Facturation / conformité :
    • Aaperture = source de vérité métier
    • Export comptable CSV = chemin fiscal/comptable court terme (Pennylane in-app deleted; sync externe reportée)
    • la conformité interne complète n’est pas supprimée, mais requalifiée en chantier d’encadrement, d’archivage et d’export.
  • Stockage objet :
    • migration vers Scaleway en pause (2026-10-23) : on reste sur R2,
    • l’architecture reste S3-compatible et transparente pour les modules applicatifs grâce à StorageProvider.
  • Conséquence roadmap :
    • court terme centré sur export comptable, abstraction stockage/Scaleway et relances automatiques,
    • moyen terme centré sur portail V2 enrichi, analytics business et Iris proactive V1,
    • long terme centré sur relais e-invoicing, Iris avancée, marketplace de templates et multi-métiers.
    • Proposal product : DELETED (FE/BE/DB 0277 ; ne plus planifier /proposal / upsell dynamique dédié ; day-planner proposals KEEP).

🚀 Dernières évolutions (septembre 2026)​

  • Vague C — Proposal product removed : hard-delete FE/BE (builder, /proposal, upsells, email new-proposal, settings defaults, OpenAPI, E2E) + Liquibase 0277 (tables proposal_*, quote_revisions, ADDON quote lines / columns, user_rates addon flags, user_settings.proposal_default_*). Quotes CRM flow conservé. Day-planner client proposals KEEP. R2 GC proposal-covers/ / proposal-defaults/ optionnel. (✅ Branch chore/remove-proposal-product - 2026-09-05) — APP_CLEANUP_MAP.md

🚀 Dernières évolutions (février 2026)​

  • Proposal v2/v3 : livré puis DELETED du produit (FE/BE/DB) — historique dans git. Day-planner client proposals KEEP.

  • 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)​

  • Roadmap 2026 réalignée : décision actée de repositionnement billing vers un provider externe (Pennylane cible initiale) avec Aaperture comme vérité métier, et ouverture du chantier Storage abstraction / Scaleway pour le stockage souverain S3-compatible. (✅ Docs - 2026-04-20)

  • 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 HtmlSanitizerService et UserEmailSenderService (sanitization HTML, wiring Nest StorageCoreModule/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 CRM pipeline et modales de création/édition. (✅ Docs - 2026-03-09)

  • Modales create/edit (lot largement livré) : extension du pattern FormEntityModal sur les écrans data/settings à forte fréquence (organizations, user session types, user providers, rates, payment plans, task types) en plus de quotes, invoices et contracts, avec duplication locale pour rates et payment plans et harmonisation visuelle des contenus modaux. (✅ Frontend + docs - 2026-03-14)

🚀 Dernières évolutions (avril 2026)​

  • Plugin Gmail natif (dans Gmail) : recadrage du plan vers un Google Workspace Add-on Gmail. Décision actée : pas d’inbox Gmail embarquée dans Aaperture ; Gmail devient la surface de travail, Aaperture reste le moteur CRM, Iris et les actions métier. (✅ Docs - 2026-04-07)
  • CRM pipeline workspace : le pipeline est désormais un workspace dédié sur /pipeline avec vraie page lead /pipeline/$leadId, table nettoyée, filtres/search tokens unifiés, vues système plus métier, badges harmonisés, actions contextuelles et suppression du flux legacy ?detail= / sheet. Le lot est aussi fortement refactoré côté frontend (hooks + composants dédiés) pour sortir du monolithe initial. (✅ Frontend + docs - 2026-04-01/02)
  • CRM pipeline - table harmonisée : la liste /pipeline est maintenant ré-alignée sur le pattern commun ListPageContent, avec scroll interne du tableau au lieu du scroll page complet, en-têtes triables (Contact, Source, Statut, Étape, Dernière activité, Prochaine action) et bulk actions reconnectées (Planifier une relance, Assigner la première étape). (✅ Frontend + docs - 2026-04-02)
  • Chat Iris / workspace assistant : renommage assistant, shell unifié desktop/mobile/fullscreen, welcome state conversationnel, composer multiline Enter / Cmd+Enter / Ctrl+Enter, contexte unifié, mémoire courte métier, résultats d’action plus prescriptifs, formulaires inline mieux préremplis, et fallback export/upload stabilisés. (✅ Frontend + Backend + docs - 2026-04-01/06)
  • Messages / inbox workspace : la page messages est maintenant harmonisée comme un vrai workspace quotidien avec liste de conversations densifiée, threads client/ami cohérents, panneau fichiers simplifié et modal de nouvelle conversation restructurée. (✅ Frontend - 2026-04-06)
  • Passe transverse de cohérence UI : harmonisation large des workspaces contact/session/quote/invoice/contract/organization/user, des listes denses, des settings, de l’admin, du calendrier, du portail client et des surfaces publiques pour réduire l’effet “boîtes dans des boîtes” et aligner la densité produit. (✅ Frontend - 2026-04-04/06)
  • Notifications center : mobile fullscreen cohérent avec le chat/global search, trigger desktop refixé, rendu desktop simplifié et actions de notification harmonisées. (✅ Frontend - 2026-04-01/02)
  • Documentation cleanup : recentrage des docs actives sur les workspaces réellement pilotés (pipeline, Iris, booking/day planner, workflows), archivage des plans terminés ou remplacés, et réalignement des contrats agents/frontend/backend sur l’état réel du portail client et des flows assistant. (✅ Docs - 2026-04-03)
  • Galeries / slideshow livré : persistance de la qualité d’export côté gallery_slideshows, passage au job de rendu sur la file gallery-slideshow, surfaces galerie publique et portail client alignées sur les blocs de présentation partagés et la vidéo slideshow publiée, et conventions ESLint (ordre des clés dans les littéraux d’objets backend, import/order et interdiction de void sur les promesses côté frontend). (✅ Backend + Frontend + CI lint - 2026-04-18)
    • Détail éditorial / phases : docs/SLIDESHOW_EDITOR_REDESIGN.md ; routage worker : docs/AGENTS_BACKEND.md § BullMQ
  • Documentation / gouvernance : ajout de docs/APP_OVERVIEW.md (vue produit globale), suppression du dossier docs/archive/ (trace git uniquement), index docs/README.md et gouvernance docs/AGENTS.md / docs/AGENTS_PATTERNS.md / .agents/docs-performance alignés ; docs-site resynchronisé. (✅ Docs - 2026-04-18)
  • Proposal publique — E2E & QA : historique livré puis DELETED avec le produit commercial Proposal (E2E public-proposal.* removed). (✅ Deleted Vague C - 2026-09-05)

🚀 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é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, codes, amitiés mutuelles, limitation orgs aux amis, panneau Chat/Amis (✅ Backend + Frontend ; KEEP — port mobile backlog)

  • Système de progression : XP, niveaux, badges, défis — DELETED (Vague A cleanup ; tables candidates drop later)

  • 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é).

🚧 Horizons actifs​

Court terme​

  1. Billing / export comptable CSV ✅ vague A
    • export-first (Pennylane in-app retiré) — ACCOUNTING_EXPORT_GUIDE.md.
  2. Storage abstraction ✅ + migration Scaleway ⏸️
    • abstraction livrée (S3CompatibleStorageProvider sur R2, 2026-10-23) ; migration Scaleway en pause, on reste sur R2 — voir PLAN_AMELIORATIONS_CRM.md § Storage abstraction / Scaleway.
  3. Relances automatiques
    • fiabiliser relances devis/factures et rappels session via workflows + BullMQ.
  4. Friends → mobile (MVP done)
    • Circles accept/reject/add/remove via /mobile/network* on aaperture-mobile.
  5. Cleanup Vague D ✅ (sauf galleries F002)
    • tables orphelines droppées (0278, 2026-09-05) + GC R2 Proposal fait sur aaperture-dev (2026-09-06) — APP_CLEANUP_MAP.md / DB_CLEANUP_AUDIT.md.
    • reste : vérifier 0277/0278 + relancer le GC R2 sur staging/prod ; extraction F002 (GalleryEditorSlideshowTab.tsx) différée, tests UI/intégration requis d'abord.

Moyen terme​

  1. Portail client V2 enrichi
    • documents, historiques d’action, meilleure lecture financière.
  2. Analytics business
    • conversion devis -> facture -> paiement, revenus par type de séance, lecture business.
  3. Iris proactive V1
    • suggestions et priorités contextualisées à partir des signaux CRM/business (pas le bloc recommendations Cmd+K, deleted).
  4. SMS provider — deleted (2026-09-06), see APP_CLEANUP_MAP.md Vague E.

Long terme​

  1. Relais des statuts de facturation électronique
    • exposition des statuts réglementaires du provider sans reconstruire la logique fiscale en interne.
  2. Iris avancée
    • priorisation proactive plus poussée et orchestration multi-surface.
  3. Marketplace de templates
    • templates documents, workflows, pages publiques et assets métier.
  4. Élargissement multi-métiers
    • ouverture structurée à d’autres métiers de l’événementiel.

👉 Le détail d’exécution reste dans docs/PRIORITES.md et docs/PLAN_AMELIORATIONS_CRM.md.