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.
| Item | Statut |
|---|---|
| Progression / gamification + recommendations (Cmd+K) | DONE — code deleted (tables → later DB wave) |
| Billing | DONE — export comptable CSV (not Pennylane in-app); see ACCOUNTING_EXPORT_GUIDE.md |
| SMS | DELETED (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-on | FREEZE — scope à part / plus tard — keep plan+code; dedicated MR only — GMAIL_PLUGIN_IMPLEMENTATION_PLAN.md |
| Doublons / Discord | BE 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) — planPROPOSAL_V2_UPSELLS_IMPLEMENTATION_PLAN.mdremoved; day-planner client proposals KEEP; R2 GC optional —APP_CLEANUP_MAP.mdVague C - Billing / export comptable : export CSV first —
docs/ACCOUNTING_EXPORT_GUIDE.md/ Vague 6 indocs/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,
Irisavancé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, emailnew-proposal, settings defaults, OpenAPI, E2E) + Liquibase0277(tablesproposal_*,quote_revisions, ADDON quote lines / columns,user_ratesaddon flags,user_settings.proposal_default_*). Quotes CRM flow conservé. Day-planner client proposals KEEP. R2 GCproposal-covers//proposal-defaults/optionnel. (✅ Branchchore/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
billingvers un provider externe (Pennylanecible initiale) avec Aaperture comme vérité métier, et ouverture du chantierStorage abstraction / Scalewaypour 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
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 CRM pipeline et modales de création/ édition. (✅ Docs - 2026-03-09)
-
Modales create/edit (lot largement livré) : extension du pattern
FormEntityModalsur les écrans data/settings à forte fréquence (organizations,user session types,user providers,rates,payment plans,task types) en plus dequotes,invoicesetcontracts, avec duplication locale pourratesetpayment planset 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
/pipelineavec 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
/pipelineest maintenant ré-alignée sur le pattern communListPageContent, 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 multilineEnter/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 filegallery-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/orderet interdiction devoidsur 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
- Détail éditorial / phases :
- Documentation / gouvernance : ajout de
docs/APP_OVERVIEW.md(vue produit globale), suppression du dossierdocs/archive/(trace git uniquement), indexdocs/README.mdet gouvernancedocs/AGENTS.md/docs/AGENTS_PATTERNS.md/.agents/docs-performancealignés ;docs-siteresynchronisé. (✅ 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é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, 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
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é).
🚧 Horizons actifs
Court terme
- Billing / export comptable CSV ✅ vague A
- export-first (Pennylane in-app retiré) —
ACCOUNTING_EXPORT_GUIDE.md.
- export-first (Pennylane in-app retiré) —
- Storage abstraction ✅ + migration Scaleway ⏸️
- abstraction livrée (
S3CompatibleStorageProvidersur R2, 2026-10-23) ; migration Scaleway en pause, on reste sur R2 — voirPLAN_AMELIORATIONS_CRM.md§ Storage abstraction / Scaleway.
- abstraction livrée (
- Relances automatiques
- fiabiliser relances devis/factures et rappels session via workflows + BullMQ.
- Friends → mobile (MVP done)
- Circles accept/reject/add/remove via
/mobile/network*onaaperture-mobile.
- Circles accept/reject/add/remove via
- Cleanup Vague D ✅ (sauf galleries F002)
- tables orphelines droppées (
0278, 2026-09-05) + GC R2 Proposal fait suraaperture-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.
- tables orphelines droppées (
Moyen terme
- Portail client V2 enrichi
- documents, historiques d’action, meilleure lecture financière.
- Analytics business
- conversion devis -> facture -> paiement, revenus par type de séance, lecture business.
- Iris proactive V1
- suggestions et priorités contextualisées à partir des signaux CRM/business (pas le bloc recommendations Cmd+K, deleted).
SMS provider— deleted (2026-09-06), seeAPP_CLEANUP_MAP.mdVague E.
Long terme
- Relais des statuts de facturation électronique
- exposition des statuts réglementaires du provider sans reconstruire la logique fiscale en interne.
- Iris avancée
- priorisation proactive plus poussée et orchestration multi-surface.
- Marketplace de templates
- templates documents, workflows, pages publiques et assets métier.
- É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.