Priorités de Développement - Aaperture
Source de vérité : Ce document est la référence principale pour les priorités de développement. Point d’entrée vers les plans : ROADMAP.md. Pour une vue détaillée par domaine fonctionnel, consultez PLAN_AMELIORATIONS_CRM.md.
Ce document liste les priorités de développement basées sur l'analyse de la documentation et l'état actuel du projet.
Dernière mise à jour : 2026-01-31 - Architecture Workers BullMQ finalisée (~95%)
✅ Complété Récemment
-
Messagerie globale (app + portail) + notifications différées - 100% complété (2026-01-31)
- ✅ Routes agnostiques : endpoints app en
/client-messages/app/*(alias legacy conservé) - ✅ Vue globale messages : liste contacts + amis, tri par dernier message, pastilles non‑lus, gestion présence légère
- ✅ Actions : suppression conversation, accès profil, message “compte client non créé”
- ✅ Email différé si non‑lu : 1er message non‑lu programmé (30 min), annulation si lu
- ✅ Settings utilisateur : opt‑in/out des emails de notifications messages via sidebar
- ✅ Invitations client sans compte : envoi d’un email d’invitation avec extrait du message
- Fichiers clés :
client-messagesbackend + templates email,MessagesPage+ sidebar settings, hooks messages app/portail
- ✅ Routes agnostiques : endpoints app en
-
Revue complète Portail Client - Phases 3, 4, 5 (i18n, UX, robustesse) - 100% complété (2026-01-31)
- ✅ i18n : suppression des chaînes françaises hardcodées dans la messagerie (
"fr-FR","Hier","Vous: "), locale dynamique, defaultValues EN - ✅ Clés de traduction : ajout
galleries,profile,logout(nav),yesterday,you,markReadError(messages),downloadError,fileTooLarge(files),sendError(contacts) - ✅ Toasts d'erreur : envoi message client, markAsRead, envoi message photographe
- ✅ Validation upload : limite 10 MB côté frontend avec toast d'erreur
- ✅ Fix download : clé
uploadError→downloadErrordansClientPortalFilesPage - ✅ UX responsive : hauteur messages
h-[600px]→h-[calc(100vh-12rem)] min-h-[500px] - ✅ Badge ContactCard : "Invitation en attente" ajouté dans la liste contacts (même pattern que ContactHero)
- Fichiers clés :
ClientPortalMessagesPage,ClientPortalFilesPage,ContactCard,ContactClientMessagesSection,ClientPortalLayout, traductions EN/FR
- ✅ i18n : suppression des chaînes françaises hardcodées dans la messagerie (
-
Harmonisation Portail Client ↔ Accès Client (UI + fonctionnalités) - 100% complété (2026-01-31)
- ✅ Navigation & Header unifiés : structure, logo, tokens
background/foreground - ✅ Heading accueil : “Votre espace sécurisé” + “Bienvenue,
{{name}}” sur/portal/dashboardet/client - ✅ Retrait du nom dans le header : “Bienvenue,
{{name}}” conservé en heading, pas dans le header global - ✅ Galeries côté portail :
- Route
/portal/galleries - Page dédiée + navigation + compteur dans dashboard
- Galerie disponible dans
ClientPortalProjectViewPage
- Route
- ✅ Paiement par virement côté portail :
- Bloc virement dans
/portal/documents(onglet factures + section factures) - Affichage même sans IBAN (message “infos bancaires manquantes”)
- Bloc virement ajouté dans la vue projet
- Bloc virement dans
- ✅ Données API :
ClientProject.galleryUrl/galleryPasswordClientDocuments.invoices[].bankDetails
- Fichiers clés :
- Backend :
backend/src/client-accounts/*,openapi/components/client-auth.yaml - Frontend :
ClientPortalLayout,ClientAccessPage,ClientPortalDocumentsPage,ClientPortalProjectViewPage,ClientPortalGalleriesPage,ClientPortalDashboardPage
- Backend :
- ✅ Navigation & Header unifiés : structure, logo, tokens
-
Système d'Authentification Client - Phases 1→5 - 100% complété (2026-01-30)
- ✅ Phase 1 - MVP Authentification :
- Migration DB (0161) : 7 tables créées
- Backend : modules
client-auth,client-accounts - Frontend : auth pages, dashboard, layout
- OpenAPI : schemas et paths complets
- i18n : traductions FR/EN
- ✅ Phase 2 - Expérience Client :
ClientPortalProjectsPage: liste avec filtres, recherche, groupementClientPortalProjectViewPage: détail avec timeline et documentsClientPortalDocumentsPage: vue unifiée devis/factures/contrats- Navigation simplifiée (Dashboard, Projets, Documents)
- ✅ Phase 3 - Messagerie :
- Migration DB (0162) : table
client_messages - Backend : module
client-messagesavec CRUD complet - Endpoints photographe dans
contacts.controller.ts - Frontend :
ClientPortalMessagesPageavec conversations et fil de discussion - Hooks TanStack Query pour messages en temps réel
- OpenAPI : schemas et paths pour messagerie
- Migration DB (0162) : table
- ✅ Phase 4 - Fichiers & Préférences :
ClientPortalFilesPage: upload, download, suppression, vue responsiveClientPortalSettingsPage: profil, sécurité, notifications, thème, suppression compte- Préférences client persistées et appliquées (thème, timezone)
- ✅ Phase 5 - Côté Photographe :
- Invitations portail client (création, statut, relances)
- Validation token côté portail + re‑invitation qui invalide l'ancien token
- Routes :
/portal/login,/portal/dashboard,/portal/projects,/portal/documents,/portal/messages,/portal/files,/portal/settings - Phases restantes : aucune
- Documentation :
docs/CLIENT_AUTHENTICATION_PLAN.md- Journal d'implémentation complet
- ✅ Phase 1 - MVP Authentification :
-
Système de notifications automatiques pour les sessions - 100% complété (2026-01-29)
- ✅ Architecture unifiée : Notifications intégrées dans le système de workflow tasks
- ✅ Workflow système : "Session Notifications" avec
default_workflow_taskspour 1 semaine, 24h, et 1h avant - ✅ Settings utilisateur : Configuration dans
user_metadata.session_reminder_settings(JSONB) - ✅ Création automatique : Tâches créées via
WorkflowTasksCreationService.createNotificationTasksForSession() - ✅ Exécution : Notifications exécutées via
WorkflowTasksExecutionService.executeNotificationEmailTask() - ✅ Templates email : Chargement via
template_keyavec remplacement de variables (session, contact, user, etc.) - ✅ Recipients flexibles : Support
send_to_useretsend_to_contactdans la configuration - ✅ Endpoints API : GET/PUT
/sessions/reminders/settings(via UserMetadataService) - ✅ Interface frontend : Configuration dans
SessionSettingsSidebarContent(onglet "Notifications") - ✅ Affichage : Notifications visibles dans l'onglet "Tasks" de la session
- ✅ Scheduler : Utilise
WorkflowTasksSchedulerexistant (pas de scheduler séparé) - Fichiers créés/modifiés :
- Backend :
backend/src/workflow-tasks/workflow-tasks-creation.service.ts(MODIFIED - création notifications)backend/src/workflow-tasks/workflow-tasks-execution.service.ts(MODIFIED - exécution notifications)backend/src/workflow-tasks/workflow-tasks-query.service.ts(MODIFIED - inclusion default tasks)backend/src/sessions/sessions.controller.ts(MODIFIED - endpoints settings)- ❌
backend/src/sessions/session-reminders.service.ts(SUPPRIMÉ) - ❌
backend/src/sessions/session-reminders.scheduler.ts(SUPPRIMÉ)
- Frontend :
frontend/src/pages/sessions/SessionViewPage/components/SessionSettingsSidebarContent.tsx(MODIFIED - onglet notifications)- ❌
frontend/src/client/sessions/useSessionReminders.ts(SUPPRIMÉ)
- Migrations :
- ✅
infra/liquibase/changes/0151_add_notification_workflow_tasks/(CREATED) - ❌
infra/liquibase/changes/0150_create_session_reminders/(SUPPRIMÉ)
- ✅
- Backend :
- Documentation :
docs/SESSION_NOTIFICATIONS_ARCHITECTURE.md,docs/PRIORITES.md
-
Settings contextuels avec Sidebar - Partiellement complété (2026-01-29)
- ✅ Intégration des panneaux de settings directement dans les vues User
- ✅
UserSettingsSidebarContentavec tabs Profile, Subscription, Permissions - ❌ AdminPanelPage : Sidebar retirée (2026-01-29) - La page Admin est déjà une page de configuration, les tabs restent inline
- ✅ Pattern uniforme avec
ContextualSettingsSidebarréutilisable - ✅ Bouton Settings (icône roue crantée) dans les headers :
- Bouton icon-only (
size="icon") avec variantoutline - Icône
Settingsde lucide-react positionnée dans le header à droite - Texte
sr-onlypour l'accessibilité - Pattern uniforme appliqué sur InsightsPage, UserViewPage
- Bouton icon-only (
- ✅ Footer fixe avec actions (Cancel/Save) dans les panneaux
- ✅ SessionViewPage : Sidebar complétée (type de session, notifications)
- ✅ OrganizationViewPage : Sidebar complétée (membres, ressources partagées)
- ✅ DashboardPage : Sidebar complétée (widgets, rafraîchissement)
- Fichiers créés/modifiés :
- Frontend :
frontend/src/pages/users/UserViewPage/components/UserSettingsSidebarContent.tsx(CREATED)frontend/src/pages/sessions/SessionViewPage/components/SessionSettingsSidebarContent.tsx(CREATED)frontend/src/pages/organizations/OrganizationViewPage/components/OrganizationSettingsSidebarContent.tsx(CREATED)frontend/src/pages/dashboard/DashboardPage/components/DashboardSettingsSidebarContent.tsx(CREATED)
- Modifications :
UserViewPage.tsx(bouton Settings + sidebar)SessionViewPage.tsx(bouton Settings dans SessionHero + sidebar)OrganizationViewPage.tsx(bouton Settings dans headerActions + sidebar, tabs members/resources déplacés dans sidebar)DashboardPage.tsx(bouton Settings dans header + sidebar)AdminPanelPage.tsx(tabs inline restaurés, sidebar retirée)
- Frontend :
- Documentation :
docs/FRONTEND_IMPROVEMENT_PLAN.md,docs/PLAN_AMELIORATIONS_CRM.md,docs/AGENTS_FRONTEND.md
-
Améliorations UI/UX pour Insights - 100% complété (2026-01-28)
- ✅ Graphiques et visualisations (barres et camemberts pour sévérité/statut)
- ✅ Vue calendrier avec navigation mensuelle
- ✅ Groupement intelligent (par type, entité, ou date)
- ✅ Actions en lot (sélection multiple et actions groupées)
- ✅ Filtres sauvegardés (persistance localStorage)
- ✅ Export multi-format (CSV, Excel, JSON, PDF, DOCX) avec génération backend et URLs signées
- ✅ Menu "More" pour regrouper les actions Generate/Export
- ✅ Settings contextuels avec Sidebar Hover pour configuration rapide
- Fichiers créés/modifiés :
- Frontend :
frontend/src/pages/insights/InsightsPage/components/InsightsCharts.tsx,InsightsCalendarView.tsx,SavedFiltersMenu.tsx, etc. - Backend :
backend/src/export/export.service.ts(support insights)
- Frontend :
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md- Section "Améliorations UI/UX"
-
LOT F : Nouvelles Règles d'Insights - 100% complété (2026-01-28)
- ✅
CONTACT_NO_ACTIVITY- Contacts sans interaction depuis X jours - ✅
QUOTE_EXPIRING- Devis proches de leur date d'expiration - ✅
INVOICE_PAYMENT_REMINDER- Rappels de paiement automatiques - ✅
SESSION_FOLLOWUP_MISSING- Sessions terminées sans suivi client - ✅
CONTRACT_EXPIRING- Contrats proches de leur expiration - ✅
RECURRING_SESSION_MISSING- Sessions récurrentes non créées - ✅
EMAIL_BOUNCE- Emails en erreur (bounce, spam, invalid) - Détecte les emails échoués dans scheduled_emails - ❌
LOW_STOCK- RETIRÉ (2026-01-28) - Ne correspond pas au domaine CRM - ✅ Règles personnalisées : Système complet permettant aux utilisateurs de créer leurs propres règles
- Fichiers créés :
- Backend :
backend/src/insights/generation/rules/*.rule.ts(7 nouvelles règles),backend/src/insights/custom-insight-rules.* - Frontend :
frontend/src/pages/insights/InsightsPage/components/CustomRulesTab.tsx - Tests :
backend/src/__tests__/insights/generation/rules/email-bounce.rule.spec.ts - Migrations :
infra/liquibase/changes/0145_create_custom_insight_rules/,0148_add_low_stock_and_email_bounce_insight_types/
- Backend :
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md- Section "LOT F"
- ✅
-
LOT D : Personnalisation et Configuration pour Insights - 100% complété (2026-01-27)
- ✅ Table
insight_settingspour stocker les configurations utilisateur/organisation - ✅ Configuration des seuils de règles (ex: jours avant alerte pour devis en attente)
- ✅ Activation/désactivation de règles spécifiques
- ✅ Configuration des emails d'insights :
- ✅ Résumés quotidiens/hebdomadaires avec horaires configurables
- ✅ Notifications immédiates pour insights critiques
- ✅ Filtres configurables (types, sévérités, scope)
- ✅ Service d'envoi d'emails avec templates HTML
- ✅ Scheduler automatique pour envoi aux heures configurées
- ✅ Interface de configuration dans le frontend (dialog avec onglets)
- ✅ Support multi-tenant (settings personnels et organisation)
- ✅ Intégration dans le rule engine pour utiliser les seuils configurables
- Fichiers créés :
- Backend :
backend/src/insights/insight-settings.*,backend/src/insights/insights-email.* - Frontend :
frontend/src/client/insights/useInsightSettings.ts,frontend/src/pages/insights/InsightsPage/components/InsightSettingsDialog.tsx - Migrations :
infra/liquibase/changes/0144_create_insight_settings/
- Backend :
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md- Section "LOT D"
- ✅ Table
-
LOT C : Support Multi-Tenant pour Insights - 100% complété (2026-01-27)
- ✅ Génération d'insights au niveau organisation (partagés entre membres)
- ✅ Filtrage par organisation dans l'API et l'UI
- ✅ Permissions : Vérification de l'appartenance à l'organisation
- ✅ Notifications : Tous les membres de l'organisation sont notifiés
- ✅ Sélecteur d'organisation dans le frontend
- ✅ Tests unitaires pour la génération multi-tenant
- Fichiers modifiés :
- Backend :
backend/src/insights/generation/insights-generator.service.ts,backend/src/insights/insights.repository.ts,backend/src/insights/insights.service.ts,backend/src/insights/insights.controller.ts - Frontend :
frontend/src/client/insights/useInsights.ts,frontend/src/pages/insights/InsightsPage/InsightsPage.tsx - Tests :
backend/src/__tests__/insights/generation/insights-generator-organization.spec.ts
- Backend :
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md- Section "LOT C"
-
LOT B : LLM-assisted Summarization - 100% complété (2026-01-27)
- ✅ Service d'enrichissement LLM pour améliorer titres et résumés
- ✅ Cache des résultats (7 jours) pour éviter les appels répétés
- ✅ Anonymisation des données avant envoi à OpenAI
- ✅ Activation automatique basée sur la présence d'une clé OpenAI
- ✅ Tests unitaires complets (11 tests, 100% passants)
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md- Section "LOT B"
-
LOT A : IA Proactive Insights (MVP Production) - 100% complété (2026-01-27)
- ✅ Migrations & Modèle : Tables
ai_insights,ai_insight_events,ai_insight_feedbackavec enums et indexes - ✅ 8 Règles d'insights : QuoteStale, InvoiceOverdue, InvoicePartiallyPaid, SessionPrepMissing, SessionPostprodLag, SessionWithoutDelivery, BookingUpcoming, ChecklistIncomplete
- ✅ Génération automatique : Scheduler quotidien à 3h du matin + génération réactive via events
- ✅ Queue & Processor : BullMQ avec retry/backoff, traitement asynchrone
- ✅ API complète : 7 endpoints REST avec validation Zod
- ✅ Interface utilisateur : Page Insights avec tabs (Open/Read/Archived), filtres avancés, badge compteur
- ✅ Notifications : In-app + WebSocket + push pour insights critiques
- ✅ Tests : 50+ tests unitaires (>80% coverage) + tests d'intégration
- ✅ i18n : Traductions FR/EN complètes
- ✅ Documentation : Plan d'implémentation complet, README backend
- ✅ Corrections post-MVP (2026-01-27) : Colonnes SQL corrigées, sérialisation JSONB, navigation/breadcrumb configurés
- Fichiers créés :
- Backend :
backend/src/insights/(repository, service, controller, rules, generator, scheduler, event handlers) - Frontend :
frontend/src/pages/insights/,frontend/src/client/insights/ - Tests :
backend/src/__tests__/insights/(8 fichiers de tests) - Migrations :
infra/liquibase/changes/0143_create_ai_insights/
- Backend :
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Insights Proactifs & Intelligence"
- ✅ Migrations & Modèle : Tables
-
Système de réservation publique - 100% complété
- ✅ Interface publique avec calendrier interactif
- ✅ Gestion des conflits avec verrouillage Redis
- ✅ Tests unitaires et d'intégration complets (149 tests)
- ✅ Documentation complète
- ✅ Mise en avant sur la landing page - Section dédiée ajoutée avec présentation des avantages (2026-01-17)
-
Global Search & IA - Phase 1 - 100% complété
- ✅ Assistant conversationnel intégré
- ✅ Builder de vues personnalisées via prompts
- ✅ Génération d'actions complexes
-
Tests d'intégration pour conflits de réservation - 100% complété
- ✅ 7 tests d'intégration pour scénarios concurrents
- ✅ Tests de verrouillage et nettoyage
-
Intégration Stripe complète - 100% complété
- ✅ Gestion des abonnements (création, annulation, reprise)
- ✅ Paiement des factures via Stripe Payment Intents
- ✅ Collecte de méthodes de paiement via SetupIntent
- ✅ Attachement de méthodes de paiement au client Stripe
- ✅ Webhooks pour synchronisation automatique
- ✅ Historique des paiements
- ✅ Interface utilisateur complète avec Stripe Elements
-
Backup et disaster recovery - 100% complété
- ✅ Sauvegardes automatiques quotidiennes (scheduler NestJS à 2h du matin)
- ✅ Vérification d'intégrité avec checksum SHA-256
- ✅ Monitoring complet (statut, durée, erreurs)
- ✅ Alertes email en cas d'échec
- ✅ Plan de disaster recovery documenté
- ✅ Statistiques de backup pour monitoring
- Documentation :
docs/DISASTER_RECOVERY.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Infrastructure & Robustesse"
-
Gestion des timeouts - 100% complété
- ✅ Configuration centralisée via module
TimeoutConfig - ✅ Timeouts configurables pour toutes les opérations (DB, APIs externes, HTTP, cron, migrations, backups)
- ✅ Middleware HTTP global pour timeout des requêtes - ✅ Appliqué
- ✅ Timeouts dans scripts shell (migrations, backups) - ✅ Appliqué
- ✅ Timeouts DB (pool et requêtes) - ✅ Appliqué
- ✅ Utilitaires de timeout avec support retry - ✅ Disponibles et utilisés
- ✅ Application des timeouts dans services OpenAI - ✅ Appliqué (tous les appels API wrappés)
- ✅ Application des timeouts dans services Google Calendar/Gmail - ✅ Appliqué (helper
withCalendarTimeoututilisé) - ✅ Application des timeouts dans schedulers cron - ✅ Appliqué (tous les schedulers wrappés avec
executeWithTimeoutAndRetry) - Documentation :
docs/TIMEOUT_MANAGEMENT.md,docs/ENV_VARIABLES_TIMEOUT.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Infrastructure & Robustesse"
- ✅ Configuration centralisée via module
-
Amélioration du processus de migration - 100% complété
- ✅ Validation automatique des migrations avant exécution
- ✅ Backup automatique avant migration en production
- ✅ Logging complet dans table
migration_logs(statut, durée, erreurs) - ✅ Rollback automatique en cas d'échec
- ✅ Vérification de l'ordre des migrations
- ✅ Script amélioré
migrate-improved.shavec toutes les fonctionnalités - ✅ Tests automatisés de migration dans CI/CD - Job
test:migrationsqui valide les migrations avant déploiement - ✅ Interface admin pour visualiser les migrations - Onglet "Migrations" avec statistiques, liste des migrations, détection des migrations manquantes
- ✅ Alertes automatiques en cas d'échec de migration - Scheduler NestJS qui vérifie quotidiennement les migrations échouées et envoie des emails d'alerte
- ✅ Validation avancée - Détection des migrations manquantes via comparaison DB/changelog (parsing du
changelog-master.yamlet comparaison avecmigration_logs) - Documentation :
docs/MIGRATION_PROCESS.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Infrastructure & Robustesse"
-
Système d'export centralisé multi-formats - 100% complété
- ✅ Service centralisé
ExportServicepour tous les exports - ✅ Support multi-formats : PDF, Word (DOCX), CSV, Excel (XLSX), JSON
- ✅ Endpoints unifiés avec paramètre
formatpour toutes les entités - ✅ Conversion HTML→Word pour quotes, invoices, contracts
- ✅ Composant frontend réutilisable
ExportFormatDialog - ✅ Exports pour : sessions, contacts, quotes, invoices, conversations, roadmaps, contract templates
- ✅ Types TypeScript générés depuis OpenAPI
- ✅ Documentation complète
- Documentation :
docs/EXPORT_SYSTEM.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Export & Import"
- ✅ Service centralisé
-
Navigation mobile améliorée - 100% complété
- ✅ Menu utilisateur full-screen sur mobile (
UserMenuMobile) - ✅ Sous-menus expansibles avec chevrons
- ✅ Contenu scrollable pour menus longs
- ✅ Détection automatique mobile/desktop dans
UserDropdown - ✅ Navigation tactile optimisée
- ✅ Menu utilisateur full-screen sur mobile (
-
Système de facturation robuste et conforme - 100% complété (2024-12-19)
- ✅ Numérotation séquentielle atomique (format YYYY-000001)
- ✅ Immutabilité vérifiable avec snapshots complets
- ✅ Conformité France/UE avec validation complète
- ✅ Calculs précis avec wrapper
Money(decimal.js) - ✅ Avoirs (credit notes) avec génération PDF
- ✅ Paiements unifiés (Stripe/PayPal/Manual) avec réconciliation automatique
- ✅ Export comptable CSV avec mapping personnalisable
- ✅ Audit trail complet de tous les événements
- ✅ Endpoints admin (régénérer PDF, vérifier hash)
- ✅ Préparation E-invoicing (structure prête)
- ✅ Tests complets (12 unitaires + 2 intégration)
- ✅ Dernière mise à jour : Correction complète des mocks Kysely dans credit-notes.service.spec.ts (7/7 tests passent, tous les mocks alignés avec l'exécution réelle)
- ✅ Statistiques : 425 tests passent, 1 test ignoré (test complexe de réconciliation)
- Documentation :
docs/BILLING_*.md(5 documents) - Référence : BILLING_FINAL_SUMMARY.md
-
Refactoring InvoiceFormPage.tsx - 100% complété (2025-12-19)
-
Refactoring AdminPanelPage.tsx - 100% complété (2025-12-19)
- ✅ Réduction de 1091 → 101 lignes (-91%)
- ✅ Extraction de composants :
UsersTab,AccessTab,ServerTab - ✅ Création de hooks :
useUsersTab,useAccessTab,useServerTab - ✅ Architecture modulaire et maintenable
- ✅ Pas d'erreurs TypeScript ou lint
- Fichiers créés :
frontend/src/pages/admin/AdminPanelPage/components/UsersTab.tsxfrontend/src/pages/admin/AdminPanelPage/components/AccessTab.tsxfrontend/src/pages/admin/AdminPanelPage/components/ServerTab.tsxfrontend/src/pages/admin/AdminPanelPage/hooks/useUsersTab.tsfrontend/src/pages/admin/AdminPanelPage/hooks/useAccessTab.tsfrontend/src/pages/admin/AdminPanelPage/hooks/useServerTab.ts
- Documentation :
frontend/src/pages/admin/AdminPanelPage/REFACTORING_COMPLETE.md - Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
Refactoring SessionViewPage.tsx - 100% complété (2025-12-19)
- ✅ Réduction de 1083 → 210 lignes (-81%)
- ✅ Extraction de composants :
SessionHeader,SessionInfoSidebar - ✅ Création de hooks :
useSessionViewPage,useSessionEvents,useSessionFiles - ✅ Architecture modulaire et maintenable
- ✅ Pas d'erreurs TypeScript ou lint
- Fichiers créés :
frontend/src/pages/sessions/SessionViewPage/components/SessionHeader.tsxfrontend/src/pages/sessions/SessionViewPage/components/SessionInfoSidebar.tsxfrontend/src/pages/sessions/SessionViewPage/hooks/useSessionViewPage.tsfrontend/src/pages/sessions/SessionViewPage/hooks/useSessionEvents.tsfrontend/src/pages/sessions/SessionViewPage/hooks/useSessionFiles.ts
- Documentation :
frontend/src/pages/sessions/SessionViewPage/REFACTORING_COMPLETE.md - Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
Refactoring SessionFormPage.tsx - 100% complété (2025-12-19)
- ✅ Réduction de 1068 → 235 lignes (-78%)
- ✅ Extraction de composants :
SessionDetailsForm - ✅ Création de hooks :
useSessionForm - ✅ Création de constants :
SESSION_STATUS_VALUES - ✅ Architecture modulaire et maintenable
- ✅ Pas d'erreurs TypeScript ou lint
- Fichiers créés :
frontend/src/pages/sessions/SessionFormPage/components/SessionDetailsForm.tsxfrontend/src/pages/sessions/SessionFormPage/hooks/useSessionForm.tsfrontend/src/pages/sessions/SessionFormPage/constants.ts
- Documentation :
frontend/src/pages/sessions/SessionFormPage/REFACTORING_COMPLETE.md - Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
Refactoring QuoteFormPage.tsx - 100% complété (2025-12-19)
- ✅ Réduction de 992 → 280 lignes (-72%)
- ✅ Extraction de composants :
QuoteDetailsForm - ✅ Création de hooks :
useQuoteForm - ✅ Architecture modulaire et maintenable
- ✅ Pas d'erreurs TypeScript ou lint
- Fichiers créés :
frontend/src/pages/quotes/QuoteFormPage/components/QuoteDetailsForm.tsxfrontend/src/pages/quotes/QuoteFormPage/hooks/useQuoteForm.ts
- Documentation :
frontend/src/pages/quotes/QuoteFormPage/REFACTORING_COMPLETE.md - Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
Refactoring SubscriptionPlansPage.tsx - 100% complété (2025-12-19)
- ✅ Réduction de 951 → 175 lignes (-82%)
- ✅ Extraction de composants :
AdminInfoCard,CurrentSubscriptionCard,PlanCard,CreateSubscriptionDialog,CancelSubscriptionDialog - ✅ Création de hooks :
useSubscriptionPlans - ✅ Création de helpers :
parsePrice,isValidPrice - ✅ Architecture modulaire et maintenable
- ✅ Pas d'erreurs TypeScript ou lint
- Fichiers créés :
frontend/src/pages/subscription/SubscriptionPlansPage/components/AdminInfoCard.tsxfrontend/src/pages/subscription/SubscriptionPlansPage/components/CurrentSubscriptionCard.tsxfrontend/src/pages/subscription/SubscriptionPlansPage/components/PlanCard.tsxfrontend/src/pages/subscription/SubscriptionPlansPage/components/CreateSubscriptionDialog.tsxfrontend/src/pages/subscription/SubscriptionPlansPage/components/CancelSubscriptionDialog.tsxfrontend/src/pages/subscription/SubscriptionPlansPage/hooks/useSubscriptionPlans.tsfrontend/src/pages/subscription/SubscriptionPlansPage/helpers.ts
- Documentation :
frontend/src/pages/subscription/SubscriptionPlansPage/REFACTORING_COMPLETE.md - Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
Refactoring GdprPortalPage.tsx - 100% complété (2025-12-19)
- ✅ Réduction de 920 → 120 lignes (-87%)
- ✅ Extraction de composants :
ConsentsTab,RightsTab,RequestsTab,LegalTab - ✅ Création de hooks :
useGdprPortal - ✅ Création de constants :
getConsentTypes,getRequestTypes,getStatusLabels - ✅ Architecture modulaire et maintenable
- ✅ Pas d'erreurs TypeScript ou lint
- Fichiers créés :
frontend/src/pages/gdpr/GdprPortalPage/components/ConsentsTab.tsxfrontend/src/pages/gdpr/GdprPortalPage/components/RightsTab.tsxfrontend/src/pages/gdpr/GdprPortalPage/components/RequestsTab.tsxfrontend/src/pages/gdpr/GdprPortalPage/components/LegalTab.tsxfrontend/src/pages/gdpr/GdprPortalPage/hooks/useGdprPortal.tsfrontend/src/pages/gdpr/GdprPortalPage/constants.ts
- Documentation :
frontend/src/pages/gdpr/GdprPortalPage/REFACTORING_COMPLETE.md - Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
Refactoring DashboardPage.tsx - 100% complété (2025-12-19)
-
Système de progression - 100% complété (2026-01-16)
- ✅ Système d'XP et niveaux : 7 niveaux (Apprenti → Légende) avec progression exponentielle
- ✅ Badges : 20+ badges dans différentes catégories (Gestion, Organisation, Relation client, Efficacité, Spécialisations, Événementiels)
- ✅ Défis : Défis quotidiens, hebdomadaires et mensuels avec renouvellement automatique
- ✅ Classements : Leaderboards par type (XP total, CA mensuel, etc.)
- ✅ Aaperture Coins : Monnaie virtuelle gagnée via niveaux, badges et défis
- ✅ Boutique de récompenses : 15 récompenses disponibles (templates, fonctionnalités, visuels, formations)
- ✅ Scheduler automatique : Renouvellement des défis et mise à jour des classements
- ✅ Intégration dans les services existants : Attribution automatique d'XP lors d'actions utilisateur
- Documentation :
backend/src/progression/README.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Progression & Engagement"
-
Système d'invitations et d'amis - 100% complété (2026-01-16)
- ✅ Backend :
- ✅ Système d'invitations : Chaque utilisateur a 5 invitations de base, peut gagner plus via progression
- ✅ Création d'invitations : Invitation par email avec token (lien) et code (6 caractères)
- ✅ Acceptation d'invitations : Via token ou code lors de l'inscription
- ✅ Gestion du solde : Suivi des invitations gagnées, utilisées et disponibles
- ✅ Système d'amis : Demandes mutuelles, acceptation, rejet, suppression
- ✅ Amitié automatique : Création automatique d'amitié mutuelle lors de l'acceptation d'invitation
- ✅ Récompenses référent : XP (50), coins (25), invitations supplémentaires (1) lors de l'inscription d'un invité
- ✅ Intégration organisations : Limitation de l'ajout aux organisations aux amis uniquement
- ✅ Visibilité utilisateur : Paramètre
is_visibledansuser_metadatapour contrôler la visibilité
- ✅ Frontend :
- ✅ RightSidebar : Panneau latéral avec onglets Chat/Amis pour basculer entre les deux
- ✅ FriendsList : Liste des amis avec recherche et actions rapides
- ✅ InvitationsPage : Page complète pour gérer les invitations (solde, création, liste, codes)
- ✅ FriendsPage : Page complète pour gérer les amis (liste, demandes, ajout)
- ✅ Hooks React Query :
useInvitations,useFriendsavec toutes les mutations - ✅ Modification MembersTab : Filtrage pour n'afficher que les amis dans la sélection
- ✅ Intégration DashboardLayout : RightSidebar remplace Agent avec onglets
- Documentation :
backend/src/invitations/README.md,backend/src/friends/README.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Collaboration & Partage"
- ✅ Backend :
-
Système d'organisations - 100% complété (2026-01-16)
- ✅ Backend :
- ✅ Création et gestion d'organisations : Les utilisateurs peuvent créer des organisations et inviter d'autres utilisateurs
- ✅ Gestion des membres : Rôles (OWNER, ADMIN, MEMBER, VIEWER) avec permissions granulaires
- ✅ Partage de ressources : Partage de sessions, devis, factures, contrats, contacts avec permissions (read, write, delete)
- ✅ Système d'invitations : Invitations par email avec tokens sécurisés
- ✅ Vérification d'accès : Service helper pour vérifier l'accès aux ressources via organisations
- ✅ Intégration dans les services existants : Support du partage via
OrganizationAccessService
- ✅ Frontend :
- ✅ Hooks React Query complets :
useOrganizations,useOrganization,useOrganizationMembers,useOrganizationResources, et toutes les mutations - ✅ Pages complètes : Liste, création, édition, vue détaillée avec onglets (Overview, Members, Resources)
- ✅ Composants :
CreateOrganizationDialog,MembersTab,ResourcesTabavec gestion complète des membres et ressources - ✅ Routes intégrées :
/organizations,/organizations/new,/organizations/$id,/organizations/$id/edit - ✅ Traductions complètes : Toutes les traductions i18n pour les organisations
- ✅ Formulaires : Utilisation de
react-hook-formavec validation Zod - ✅ Optimistic updates : Mises à jour optimistes et invalidation du cache React Query
- ✅ Hooks React Query complets :
- Documentation :
backend/src/organizations/README.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Collaboration & Partage"
- ✅ Backend :
-
Navigation breadcrumb améliorée - 100% complété (2026-01-27)
- ✅ Composant
Breadcrumbréutilisable avec support mobile et desktop - ✅ Navigation contextuelle pour quotes et invoices avec liens vers sessions/contacts parents
- ✅ Intégration dans le header avec affichage adaptatif (dropdown mobile, navigation desktop)
- ✅ Support des icônes et traductions i18n
- ✅ Gestion des paramètres de recherche pour préserver le contexte de navigation
- ✅ Composant
-
Liens portail client pour documents - 100% complété (2026-01-27)
- ✅ Génération de liens portail client pour contracts, invoices et quotes
- ✅ Partage sécurisé via tokens d'accès client
- ✅ Interface utilisateur pour copier et partager les liens
- ✅ Intégration dans les pages de détail des documents
-
Génération PDF directe - 100% complété (2026-01-27)
- ✅ Génération PDF directe pour invoices et quotes sans passer par le système d'export
- ✅ Endpoints dédiés avec URLs signées temporaires
- ✅ Amélioration des performances et de l'expérience utilisateur
- ✅ Support du téléchargement direct depuis le portail client
-
Améliorations système d'export - 100% complété (2026-01-27)
- ✅ Amélioration du styling des exports (PDF, Word, Excel, CSV)
- ✅ Gestion améliorée des statuts d'export avec feedback utilisateur
- ✅ Interface utilisateur améliorée pour la sélection de formats
- ✅ Support des exports planifiés avec templates personnalisables
-
Synchronisation migrations depuis Liquibase - 100% complété (2026-01-27)
- ✅ Endpoint admin
/migrations/sync-from-liquibasepour synchroniser les logs de migration - ✅ Synchronisation automatique depuis la table
databasechangelogde Liquibase - ✅ Détection et import des migrations exécutées directement avec Liquibase
- ✅ Interface admin avec bouton de synchronisation manuelle
- ✅ Prévention des doublons lors de la synchronisation
- Documentation :
backend/src/migrations/README.md(à mettre à jour)
- ✅ Endpoint admin
-
Réinitialisation de mot de passe - 100% complété (2026-01-27)
- ✅ Système complet de réinitialisation de mot de passe avec tokens sécurisés
- ✅ Génération de tokens cryptographiquement sécurisés (32 bytes)
- ✅ Chiffrement AES-256-GCM des tokens avant stockage
- ✅ Hash SHA-256 pour recherche rapide O(1)
- ✅ Expiration des tokens après 60 minutes
- ✅ Utilisation unique des tokens avec opérations atomiques
- ✅ Envoi d'emails avec liens de réinitialisation
- ✅ Interface frontend complète avec validation
- ✅ Support Google OAuth avec codes d'invitation lors de l'inscription
- Documentation :
backend/src/password-reset/README.md,backend/src/auth/README.md
-
Améliorations landing page - 100% complété (2026-01-27)
-
✅ Sections animées avec effets de transition fluides
-
✅ Background avec particules animées pour un effet visuel moderne
-
✅ Amélioration de l'expérience utilisateur et de l'engagement
-
✅ Optimisation des performances pour les animations
-
✅ Réduction de 895 → 85 lignes (-90%)
-
✅ Extraction de composants :
QuickActionsCard,RevenueSection,DuplicatesSection,ContactsSection,SessionsSection,DocumentsSection -
✅ Création de hooks :
useDashboard -
✅ Architecture modulaire et maintenable
-
✅ Pas d'erreurs TypeScript ou lint
-
Fichiers créés :
frontend/src/pages/dashboard/DashboardPage/components/QuickActionsCard.tsxfrontend/src/pages/dashboard/DashboardPage/components/RevenueSection.tsxfrontend/src/pages/dashboard/DashboardPage/components/DuplicatesSection.tsxfrontend/src/pages/dashboard/DashboardPage/components/ContactsSection.tsxfrontend/src/pages/dashboard/DashboardPage/components/SessionsSection.tsxfrontend/src/pages/dashboard/DashboardPage/components/DocumentsSection.tsxfrontend/src/pages/dashboard/DashboardPage/hooks/useDashboard.ts
-
Documentation :
frontend/src/pages/dashboard/DashboardPage/REFACTORING_COMPLETE.md -
Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
-
Surveillance d'inactivité des formulaires publics - 100% complété (2025-12-20)
-
✅ Backend : migration
0118(champsmonitor_inactivity,inactivity_threshold_days,last_submission_at,last_inactivity_alert_sent_at), nouveaux servicesLeadFormsMonitoringServiceetLeadFormsSchedulerpour envoyer les alertes quotidiennement en respectant une fenêtre de 24h. -
✅ API : DTO (
CreateLeadFormDto,UpdateLeadFormDto) enrichis,LeadFormSubmissionsServiceréinitialise les compteurs à chaque soumission et endpointPOST /lead-forms/{id}/acknowledge-inactivitypour accuser réception. -
✅ Frontend : configuration dans
LeadFormEditPage, hookuseDashboardexposeinactiveForms/handleAcknowledgeInactivity, composantRequestsSectionaffiche les alertes avec CTA etuseLeadFormsapporte la mutationuseAcknowledgeLeadFormInactivity. -
✅ Documentation : PLAN_AMELIORATIONS_CRM.md mis à jour avec la description détaillée et les suivis recommandés.
-
✅ Réduction de 1120 → 175 lignes (-84%)
-
✅ Extraction de composants :
InvoiceDetailsForm,InvoiceItemsForm,InvoiceHeaderDates,InvoiceCompanyInfo,InvoiceContactInfo -
✅ Création de hooks :
useInvoiceForm,useInvoiceContactSelection,useInvoiceSessionSelection -
✅ Extraction de types, helpers et constantes
-
✅ Architecture modulaire et maintenable
-
✅ Pas d'erreurs TypeScript ou lint
-
Fichiers créés :
frontend/src/pages/invoices/InvoiceFormPage/components/InvoiceDetailsForm.tsxfrontend/src/pages/invoices/InvoiceFormPage/components/InvoiceItemsForm.tsxfrontend/src/pages/invoices/InvoiceFormPage/components/InvoiceHeaderDates.tsxfrontend/src/pages/invoices/InvoiceFormPage/components/InvoiceCompanyInfo.tsxfrontend/src/pages/invoices/InvoiceFormPage/components/InvoiceContactInfo.tsxfrontend/src/pages/invoices/InvoiceFormPage/hooks/useInvoiceForm.tsfrontend/src/pages/invoices/InvoiceFormPage/hooks/useInvoiceContactSelection.tsfrontend/src/pages/invoices/InvoiceFormPage/hooks/useInvoiceSessionSelection.tsfrontend/src/pages/invoices/InvoiceFormPage/types.tsfrontend/src/pages/invoices/InvoiceFormPage/helpers.tsfrontend/src/pages/invoices/InvoiceFormPage/constants.ts
-
Documentation :
frontend/src/pages/invoices/InvoiceFormPage/REFACTORING_COMPLETE.md -
Référence : FRONTEND_IMPROVEMENT_PLAN.md, FRONTEND_NEXT_STEPS.md
-
- ✅ Intégration dans
MobileSidebar
-
Système de queue pour jobs lourds - 100% complété
- ✅ Module
QueueModuleavec configuration BullMQ et Redis - ✅ Service
QueueServicepour gérer les queues et jobs - ✅ 6 queues configurées : exports, google-calendar-sync, scheduled-emails, workflow-tasks, recurring-sessions, audit-cleanup
- ✅ 6 processors implémentés pour chaque type de job
- ✅ Migration complète des schedulers vers la queue (non-bloquant)
- ✅ Migration du
ExportControllervers la queue - ✅ Intégration WebSocket pour mises à jour de statut en temps réel
- ✅ Endpoint
/export/status/:jobIdpour vérifier le statut des jobs - ✅ Retry automatique avec backoff exponentiel
- ✅ Documentation complète
- Documentation :
docs/QUEUE_SYSTEM.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Infrastructure & Robustesse"
- ✅ Module
-
Gestion centralisée des types via OpenAPI - 100% complété
- ✅ Audit complet des types utilisés dans frontend et backend
- ✅ Migration de tous les types partagés vers OpenAPI
-
Refactoring des services volumineux (Phase 6.5) - 100% complété
- ✅
duplicates.service.ts: 858 → 157 lignes (-82%) - 4 services créés - ✅
storage.service.ts: 750 → 160 lignes (-79%) - 5 services créés - ✅
pdf.service.ts: 683 → 84 lignes (-88%) - 4 services créés - ✅
contacts.service.ts: 677 → 62 lignes (-91%) - 3 services créés - ✅ Réduction globale : 2968 → 463 lignes (-84%)
- ✅ Lint et type-check passent sans erreurs
- ✅ Principes architecturaux respectés (SRP, Core Modules)
- ✅ Types scope-specific (frontend-only ou backend-only) dans fichiers
types.tsappropriés - ✅ Suppression des définitions de types dupliquées
- ✅ Mise à jour de tous les imports pour utiliser les types générés
- ✅ Vérification que tous les types OpenAPI sont correctement exportés
- ✅ Documentation complète des règles de gestion des types
- ✅ Correction des erreurs de validation OpenAPI
- Documentation :
docs/AGENTS_OPENAPI.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Tests & Qualité"
- ✅
-
Refactoring des services volumineux (Phase 6.6 - Priorité Haute) - 100% complété
- ✅ Refactoring de tous les fichiers de priorité haute (> 600 lignes)
- ✅ 8 fichiers refactorisés avec réduction moyenne de -82.8%
- Refonte complète du chat agent - 100% complété (Décembre 2024)
- ✅ Architecture modulaire avec hooks spécialisés (
useConversationState,useMessageState) - ✅ Gestion optimiste des conversations (mise à jour immédiate de la liste)
- ✅ Correction du problème de suppression (plus de rechargement automatique)
- ✅ Améliorations visuelles (animations subtiles, transitions fluides)
- ✅ Séparation claire des responsabilités (conversations vs messages)
- ✅ Gestion propre du cache React Query
- Documentation :
docs/REFONTE_CHAT_AGENT.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Architecture & Qualité"
- ✅ sessions.service.ts : 832 → 143 lignes (-83%)
- ✅ user-session-types.service.ts : 651 → 121 lignes (-81%)
- ✅ user-payment-plans.service.ts : 651 → 110 lignes (-83%)
- ✅ session-checklists.service.ts : 646 → 206 lignes (-68%)
- ✅ ai-search.service.ts : 637 → 144 lignes (-77%)
- ✅ backup.service.ts : 621 → 73 lignes (-88%)
- ✅ search.service.ts : 620 → 42 lignes (-93%)
- ✅ scheduled-emails.service.ts : 616 → 65 lignes (-89%)
- Résultats globaux Phase 6.6 : 5,274 → 904 lignes (-82.8% de réduction)
- ✅ Tous les fichiers refactorisés < 400 lignes (objectif atteint)
- ✅ Services spécialisés créés pour chaque responsabilité (SRP)
- ✅ Architecture Clean respectée avec modules Core
- ✅ Tous les tests passent (lint + type-check)
- Documentation :
docs/FICHIERS_RESTANTS_REFACTORING.md,docs/REFACTORING_ARCHITECTURE_COMPLETE.md
- Refactoring des services volumineux (Phase 6.7 - Priorité Moyenne) - 100% complété
- ✅ Refactoring de tous les fichiers de priorité moyenne (500-600 lignes)
- ✅ 10 fichiers refactorisés avec réduction moyenne de -83.3%
- ✅ user-rates.service.ts : 595 → 98 lignes (-84%)
- ✅ workflows-user.service.ts : 594 → 79 lignes (-87%)
- ✅ session-recurrence.service.ts : 593 → 106 lignes (-82%)
- ✅ email.service.ts : 545 → 91 lignes (-83%)
- ✅ google-calendar-events-sessions.service.ts : 541 → 148 lignes (-73%)
- ✅ notifications.service.ts : 526 → 96 lignes (-82%)
- ✅ user-metadata.service.ts : 512 → 43 lignes (-92%)
- ✅ export-excel.service.ts : 505 → 56 lignes (-89%)
- ✅ paypal.service.ts : 502 → 119 lignes (-76%)
- ✅ notion.service.ts : 500 → 67 lignes (-87%)
- Résultats globaux Phase 6.7 : 5,406 → 903 lignes (-83.3% de réduction)
- ✅ 30 services spécialisés créés pour améliorer la maintenabilité
- ✅ Tous les fichiers refactorisés < 400 lignes (objectif atteint)
- ✅ Services spécialisés créés pour chaque responsabilité (SRP)
- ✅ Architecture Clean respect ée avec modules Core
- ✅ Tous les tests passent (lint + type-check)
- Documentation :
docs/FICHIERS_RESTANTS_REFACTORING.md,docs/REFACTORING_ARCHITECTURE_COMPLETE.md
-
Refactoring des services volumineux (Phase 6.3, 6.4 et 6.5) - 100% complété
- ✅ SessionRoadmapWordService : 887 → 135 lignes (-85%)
- 8 builders spécialisés créés dans
backend/src/sessions/helpers/ - Séparation claire des responsabilités (header, session info, weather, contacts, providers, checklist)
- 8 builders spécialisés créés dans
- ✅ PermissionsService : 812 → 339 lignes (-58%)
- 4 services spécialisés créés : Subscription, Overrides, Plans, PlanData
- Structure Core Module vérifiée, pas de dépendances circulaires
- ✅ WorkflowTasksService : 833 → 110 lignes (-87%)
- 4 services spécialisés créés : Helpers, Creation, Execution, Query
- Séparation claire entre création, exécution et requêtes
- ✅ WorkflowsDefaultService : 883 → 124 lignes (-86%)
- 4 services spécialisés créés : CRUD, Phases, Tasks, Reset
- Architecture modulaire pour la gestion des workflows par défaut
- ✅ DuplicatesService : 858 → 157 lignes (-82%)
- 4 services spécialisés créés : Helpers, CRUD, Registration, Actions
- Séparation claire entre CRUD, inscriptions et actions métier
- ✅ StorageService : 750 → 160 lignes (-79%)
- 5 services spécialisés créés : Helpers, Config, URL, Upload, FileManagement, Image
- Architecture modulaire pour la gestion du stockage R2/S3
- ✅ PdfService : 683 → 84 lignes (-88%)
- 4 services spécialisés créés : Helpers, TableRendering, Rendering, Generation
- Séparation claire entre génération, rendu et upload
- ✅ ContactsService : 677 → 62 lignes (-91%)
- 3 services spécialisés créés : Sessions, CRUD, Timeline
- Séparation claire entre CRUD, associations et timeline
- Résultats globaux Phase 6.3 et 6.4 : 3415 → 708 lignes (-79% de réduction)
- Résultats globaux Phase 6.5 : 2968 → 463 lignes (-84% de réduction)
- Total nouveaux services spécialisés créés : 32 services pour améliorer la maintenabilité
- ✅ Tous les fichiers refactorés < 400 lignes (objectif atteint)
- ✅ Lint et type-check passent sans erreurs
- ✅ Pas de dépendances circulaires, Core Modules correctement configurés
- Documentation :
docs/REFACTORING_ARCHITECTURE_COMPLETE.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Architecture & Qualité"
- ✅ SessionRoadmapWordService : 887 → 135 lignes (-85%)
-
Refonte complète du chat agent - 100% complété (Décembre 2024)
-
✅ Architecture modulaire avec hooks spécialisés (
useConversationState,useMessageState) -
✅ Gestion optimiste des conversations (mise à jour immédiate de la liste)
-
✅ Correction du problème de suppression (plus de rechargement automatique)
-
✅ Améliorations visuelles (animations subtiles, transitions fluides)
-
✅ Séparation claire des responsabilités (conversations vs messages)
-
✅ Gestion propre du cache React Query
-
Documentation :
docs/REFONTE_CHAT_AGENT.md -
Référence : PLAN_AMELIORATIONS_CRM.md - Section "Architecture & Qualité"
-
✅ Renommage menu "Administration" → "Système" pour éviter confusion
-
Documentation :
docs/MOBILE_NAVIGATION.md -
Référence : PLAN_AMELIORATIONS_CRM.md - Section "Mobile & PWA"
🚀 Priorité Haute (Impact élevé, Effort moyen)
Note :
- ✅ Refactoring backend priorité haute et moyenne terminé (Phase 6.6 et 6.7)
- 📋 Plan d'amélioration frontend : Voir
docs/FRONTEND_IMPROVEMENT_PLAN.mdpour le plan complet- 🎯 Prochaines étapes frontend : Voir
docs/FRONTEND_NEXT_STEPS.mdpour la vue synthétique
0. Refactoring Frontend - Fichiers Critiques ✅ TERMINÉ
- Impact : Essentiel pour la maintenabilité et la qualité du code
- Effort : Moyen-Élevé
- Description : Refactorer les fichiers frontend volumineux (> 400 lignes) pour améliorer la maintenabilité
- Statut : ✅ Terminé - Tous les fichiers ont été refactorés
- Objectif : Réduire tous les fichiers sous 400 lignes ✅ Atteint
- Complété :
- ✅
router.tsx- 1119 → 227 lignes (-80%) - Routes extraites dansroutes/ - ✅
InvoiceFormPage.tsx- 1120 → 175 lignes (-84%) - ✅
AdminPanelPage.tsx- 1091 → 101 lignes (-91%) - ✅
SessionViewPage.tsx- 1083 → 210 lignes (-81%) - ✅
SessionFormPage.tsx- 1068 → 235 lignes (-78%) - ✅
QuoteFormPage.tsx- 992 → 280 lignes (-72%)
- ✅
- Complété :
- ✅
QuotesInvoicesTab.tsx- 1300 → 252 lignes (-81%) - Hook principal + 6 composants de section - ✅
LeadFormEditPage.tsx- 894 → 158 lignes (-82%) - Hook principal + 3 composants d'onglets - ✅
StripeSubscriptionTab.tsx- 890 → 113 lignes (-87%) - Hook principal + 3 composants - ✅
UserRateFormPage.tsx- 882 → 150 lignes (-83%) - Hook principal + 6 composants de sections
- ✅
- Fichiers prioritaires restants :
- ✅
ContactFormPage.tsx- 834 → 236 lignes (-72%) - Complété - ✅
WeekTimelineView.tsx- 830 → 104 lignes (-87%) - Complété - ✅
ProfilePage.tsx- 815 → 126 lignes (-85%) - Complété - ✅
LeadFormStylingEditor.tsx- 802 → 46 lignes (-94%) - Complété - ✅
DayTimelineView.tsx- 771 → 87 lignes (-89%) - Complété - ✅
QuotesListPage.tsx- 786 → 217 lignes (-72%) - Complété - ✅
UserViewPage.tsx- 747 → 201 lignes (-73%) - Complété - ✅
AdminDefaultSessionTypesPage.tsx- 747 → 170 lignes (-77%) - Complété - ✅
InfoTab.tsx(SessionViewPage) - 744 → 108 lignes (-85%) - Complété - ✅
DefaultSessionTypesTab.tsx- 743 → 166 lignes (-78%) - Complété - ✅
DuplicateViewPage.tsx- 741 → 222 lignes (-70%) - Complété - ✅
OnboardingPlanSelection.tsx- 730 → 88 lignes (-88%) - Complété - ✅
ChecklistTab.tsx(SessionViewPage) - 725 → 157 lignes (-78%) - Complété - ✅
EventDialogs.tsx- 720 → 62 lignes (-91%) - Complété - ✅
UserSessionTypeFormPage.tsx- 710 → 123 lignes (-83%) - Complété - ✅
InvoicesListPage.tsx- 663 → 206 lignes (-69%) - Complété - ✅
AdminDefaultPaymentPlansPage.tsx- 632 → 77 lignes (-88%) - Complété - ✅
DefaultPaymentPlansTab.tsx- 630 → 79 lignes (-87%) - Complété - ✅
ContractsListPage.tsx- 623 → 179 lignes (-71%) - Complété - ✅
AnalyticsPage.tsx- 597 → 162 lignes (-73%) - Complété - ✅
ContactsListPage.tsx- 601 → 273 lignes (-55%) - Complété - ✅
AdminDefaultWorkflowFormPage.tsx- 591 → 190 lignes (-68%) - Complété - ✅
AdminSubscriptionPlansPage.tsx- 560 → 92 lignes (-84%) - Complété - ✅
DefaultWorkflowsTab.tsx- 542 → 126 lignes (-77%) - Complété - ✅
AgendaListView.tsx- 531 → 85 lignes (-84%) - Complété - ✅
LeadFormSubmissionsPage.tsx- 520 → 194 lignes (-63%) - Complété - ✅
SettingsTab.tsx(LeadFormEdit) - 514 → 64 lignes (-88%) - Complété
- ✅
- Résultat final :
- ✅ 32 fichiers refactorisés au total
- ✅ ~15,000+ lignes de code réduites
- ✅ Réduction moyenne : ~75% par fichier
- ✅ 0 fichier restant à refactorer
- Documentation :
- 📋 FRONTEND_REFACTORING_RESTANTS.md - Historique complet des refactorings
- 🎯 FRONTEND_NEXT_STEPS.md - Optimisations futures
1. Calendrier visuel amélioré ✅ COMPLÉTÉ
- Impact : Essentiel pour la gestion des sessions
- Effort : Moyen-Élevé
- Description : Améliorer l'interface calendrier pour une meilleure visualisation et gestion des sessions
- Statut : ✅ Complété (2025-01-27)
- Réalisations :
- ✅ Vue timeline pour la semaine avec grille horaire (0h-23h)
- ✅ Vue timeline pour le jour avec grille horaire (0h-23h)
- ✅ Positionnement précis des événements/sessions
- ✅ Affichage des créneaux de disponibilité
- ✅ Navigation et scroll optimisés
- ✅ Visualisation des chevauchements (bordure rouge, icône d'alerte, tooltip)
- ✅ Légende interactive avec icônes et couleurs
- ✅ Filtres visuels (masquer/afficher sessions, événements, disponibilités)
- ✅ Vue agenda/liste chronologique
- ✅ Drag & drop dans toutes les vues (Month, Week, Day) avec zones droppables
- Documentation :
docs/CALENDAR_VISUAL_IMPROVEMENTS.md
2. Sécurité CASA pour validation Google ✅ COMPLÉTÉ
- Impact : Validation Google requise pour intégration OAuth/Calendar
- Effort : Moyen
- Description : Corrections de sécurité critiques identifiées dans l'évaluation CASA pour passer la validation Google
- Statut : ✅ Complété (2025-01-26)
- Référence : SECURITY_ASSESSMENT_CASA.md
- Score de sécurité : A (95/100) ⬆️
- Améliorations critiques (Phase 1) : ✅ COMPLÉTÉ
- ✅ Supprimer valeur par défaut JWT_SECRET - Validation stricte implémentée
- ✅ Configurer CORS avec whitelist d'origines - Whitelist configurée via
ALLOWED_ORIGINS - ✅ Installer et configurer Helmet - Helmet configuré avec CSP et headers de sécurité
- ✅ Configurer whitelist d'origines pour WebSocket - Whitelist appliquée aux gateways WebSocket
- Améliorations importantes (Phase 2) : ✅ COMPLÉTÉ
- ⚠️ Mettre à jour dépendances vulnérables (glob, js-yaml) - Nécessite breaking changes, à planifier
- ✅ Ajouter rate limiting global par défaut - Rate limit global (100 req/min) via
APP_GUARD - ✅ Implémenter protection CSRF - Guard CSRF avec validation des tokens
- ✅ Validation contenu fichiers (magic bytes) - Validation intégrée dans
StorageController
- Améliorations (Phase 3) : ✅ COMPLÉTÉ
- ✅ Implémenter refresh token - Refresh token JWT (access: 15min, refresh: 30 jours)
- ✅ Système d'alerte pour tentatives suspectes -
SecurityAlertsServiceavec alertes email - ✅ Sanitizer HTML côté serveur -
HtmlSanitizerServiceavec DOMPurify
3. IA Proactive Insights (LOT A - MVP) ✅ 100% COMPLÉTÉ
- Impact : Très élevé - Améliore la productivité en détectant automatiquement les situations nécessitant une action
- Effort : Moyen-Élevé
- Description : Système d'insights proactifs qui détecte automatiquement des situations nécessitant une action (devis en attente, factures en retard, sessions sans préparation, etc.) et les présente à l'utilisateur avec des actions suggérées
- Statut : ✅ 100% complété (2026-01-27) - Toutes les fonctionnalités MVP implémentées et opérationnelles
- Approche MVP : Règles déterministes (pas de LLM au début) pour garantir la fiabilité
- Fonctionnalités :
- ✅ 8 types d'insights : Devis en attente, factures en retard, sessions sans préparation, etc.
- ✅ Génération automatique : Scheduler quotidien + triggers event-driven
- ✅ Notifications : In-app + WebSocket + push
- ✅ Interface dédiée : Insights Center avec filtres et actions
- ✅ Feedback utilisateur : Système de rating pour améliorer la pertinence
- Livrables :
- A1. Modèle & Persistence (tables, migrations, types)
- A2. Génération "Rules First" (8 règles déterministes)
- A3. Job + Queue + Notifications (BullMQ, scheduler, event handlers)
- A4. API + UI (endpoints, hooks, composants)
- Documentation :
docs/INSIGHTS_IMPLEMENTATION_PLAN.md - Référence : PLAN_AMELIORATIONS_CRM.md - Section "Insights Proactifs & Intelligence"
- Corrections post-MVP (2026-01-27) : Colonnes SQL corrigées, sérialisation JSONB, navigation/breadcrumb configurés
Prochaines étapes :
- ✅ LOT C : Support Multi-Tenant (Priorité Haute) - ✅ COMPLÉTÉ (2026-01-27)
- ✅ LOT B : LLM-assisted Summarization (Priorité Moyenne) - ✅ COMPLÉTÉ (2026-01-27)
- ✅ LOT D : Personnalisation et Configuration (Priorité Haute) - ✅ COMPLÉTÉ (2026-01-27)
- ✅ Améliorations UI/UX (Priorité Moyenne) - ✅ COMPLÉTÉ (2026-01-28) - Graphiques, calendrier, groupement, actions en lot, filtres sauvegardés, export multi-format, menu "More", settings contextuels
- ✅ LOT F : Nouvelles Règles d'Insights (Priorité Moyenne) - ✅ PARTIELLEMENT COMPLÉTÉ (2026-01-28) - 6 règles sur 8 implémentées + système de règles personnalisées
- LOT E : Analytics et Intelligence (Priorité Basse) - À venir - Dashboard analytics, métriques de résolution, recommandations
- ✅ LOT D : Personnalisation et Configuration (Priorité Moyenne) - ✅ COMPLÉTÉ (2026-01-27) - Configuration des seuils, règles, et emails d'insights (résumés quotidiens/hebdomadaires, configuration par utilisateur/organisation)
- ✅ Améliorations UI/UX (Priorité Moyenne) - ✅ COMPLÉTÉ (2026-01-29) - Graphiques, actions en lot, export, Settings contextuels avec Sidebar (✅ UserViewPage et AdminPanelPage complétés)
- LOT F : Nouvelles Règles (Priorité Moyenne) - Étendre la couverture
- LOT E : Analytics (Priorité Basse) - Dashboard analytics sur les insights
4. Système d'Authentification Client ✅ PHASES 1→5 COMPLÉTÉES
- Impact : Très élevé - Expérience client premium, vue multi-photographes, messagerie, fidélisation
- Effort : Élevé (8-10 semaines en 5 phases)
- Description : Système d'authentification client complet avec compte global, permettant aux clients de voir tous leurs projets avec tous leurs photographes depuis une interface unifiée, avec messagerie, espace fichiers personnel et préférences sauvegardées
- Statut : 🚧 Phase 2 complétée (Janvier 2026)
- ✅ Phase 1 : MVP Authentification - Migration DB (7 tables), modules backend (
client-auth,client-accounts), frontend (auth pages, dashboard, layout) - ✅ Phase 2 : Expérience Client - Pages projets, documents, timeline
- ✅ Phase 3 : Messagerie client-photographe
- ✅ Phase 4 : Fichiers + Préférences (thème, notifications, timezone)
- ✅ Phase 5 : Côté photographe (invitations, statuts)
- 📋 Phase 3 : Messagerie - Communication client-photographe
- 📋 Phase 4 : Fichiers et Préférences
- 📋 Phase 5 : Côté Photographe (invitations)
- ✅ Phase 1 : MVP Authentification - Migration DB (7 tables), modules backend (
- Vision :
- Système hybride : Accès token (existant) pour accès rapide + Compte client (nouveau) pour expérience complète
- Compte global : Un email = un compte, visible par tous les photographes avec qui le client travaille
- Liaison Contact-ClientAccount : Les Contacts restent locaux au photographe, les ClientAccounts sont globaux
- Fonctionnalités :
- Phase 1 - MVP Auth : Register, login, logout, forgot-password, reset-password, dashboard basique
- Phase 2 - Expérience : Vue projets multi-photographes, documents, timeline
- Phase 3 - Messagerie : Communication directe client-photographe
- Phase 4 - Fichiers : Espace personnel, préférences (notifications, thème, timezone)
- Phase 5 - Photographe : Invitation clients, indicateur compte actif, messages dans Contact
- Architecture :
- 6 tables :
client_accounts,client_account_contacts,client_messages,client_files,client_preferences,client_password_reset_tokens - JWT séparés : Tokens client (
type: "client") distincts des tokens user - Guards séparés :
ClientAuthGuardvsAuthGuard - Sécurité : Rate limiting, vérification email, liaison sécurisée par email match
- 6 tables :
- Endpoints :
- Auth :
/api/client-auth/register,login,logout,forgot-password,reset-password,refresh - Compte :
/api/client-accounts/me,/me/photographers,/me/projects,/me/documents - Messages :
/api/client-messages/conversations,/conversations/:contactId - Fichiers :
/api/client-files/,/upload,/:fileId - Photographe :
/api/contacts/:id/invite-to-create-account,/:id/messages
- Auth :
- Frontend :
- Layout :
ClientPortalLayoutavec header/sidebar dédiés + thème appliqué (light/dark/system) - Pages : Login, Register, Dashboard, Projects, Documents, Messages, Files, Settings
- Hooks :
useClientAuth,useClientProjects,useClientMessages,useClientFiles
- Layout :
- Compatibilité :
- ✅ Tokens existants : L'accès token continue de fonctionner indépendamment
- ✅ Pas de migration forcée : Les Contacts existants restent tels quels
- ✅ Liaison progressive : Le photographe peut inviter ses clients quand il le souhaite
- Documentation :
docs/CLIENT_AUTHENTICATION_PLAN.md - Estimation : 8-10 semaines (5 phases)
5. Authentification à deux facteurs (2FA)
- Impact : Sécurité critique
- Effort : Moyen
- Description : Implémenter l'authentification à deux facteurs pour renforcer la sécurité
- Statut : Non commencé
7. GDPR / RGPD - Portail de gestion des données ✅ COMPLÉTÉ
- Impact : Conformité légale essentielle
- Effort : Moyen-Élevé
- Description : Portail complet pour gérer les données personnelles (export, suppression, rectification, consentements, traçabilité)
- Statut : ✅ Complété (2025-01-27)
- Livrables :
- ✅ Migrations GDPR (consentements, demandes, exports, logs d’effacement, activités de traitement)
- ✅ Service et contrôleur RGPD (accès, portabilité, rectification, effacement, opposition, limitation)
- ✅ Portail frontend
/gdpravec onglets Consentements / Mes droits / Mes demandes / Informations légales - ✅ Textes légaux conformes (bases légales, durées de conservation, contact, CNIL)
- ✅ Export des données (JSON/CSV/XML), vérification par email, planification d’effacement et annulation
📋 Priorité Moyenne (Impact moyen, Effort variable)
1. Global Search & IA - Phase 2
- Impact : Améliore la productivité
- Effort : Moyen
- Description :
- Création assistée par IA d'entités (contacts, sessions, devis, factures)
- Génération de rapports intelligents
- Rédaction assistée
- Statut : Planifié
- Référence : PLAN_AMELIORATIONS_CRM.md
2. Scheduled exports/reports ✅
- Impact : Automatisation utile
- Effort : Moyen
- Description :
- ✅ Scheduled emails pour devis/factures/contrats (déjà implémenté)
- ✅ Système d'export centralisé multi-formats (PDF, Word, CSV, Excel, JSON) - Complété
- ✅ Scheduled exports (CSV, Excel, JSON, PDF, Word) avec récurrence - Complété
- ✅ Envoi automatique d'exports par email - Complété
- ✅ Sélection personnalisée des champs à exporter - Complété
- ✅ Templates d'export pré-configurés - Complété
- ✅ Système d'import CSV/Excel avec validation - Complété
- ✅ Import pour Contacts - Complété
- ✅ Import pour Sessions - Complété
- ✅ Import pour Quotes - Complété
- ✅ Import pour Invoices - Complété
- ✅ Interface frontend complète avec boutons et dialogs pour toutes les entités - Complété
- ❌ Scheduled report generation pour analytics - À venir
- Statut : ✅ Complété (système d'export/import complet avec planification)
- Documentation :
docs/EXPORT_SYSTEM.mddocs/IMPORT_SYSTEM.mddocs/SCHEDULED_EXPORTS.mddocs/EXPORT_TEMPLATES.md
3. Planification récurrente pour les sessions ✅
- Impact : Améliore la productivité pour les sessions régulières
- Effort : Moyen-Élevé
- Description : Permettre de créer des sessions récurrentes (quotidien, hebdomadaire, mensuel, annuel) avec gestion des occurrences individuelles et synchronisation Google Calendar
- Fonctionnalités :
- ✅ Patterns de récurrence (quotidien, hebdomadaire avec jours spécifiques, mensuel, annuel)
- ✅ Date de fin de récurrence
- ✅ Modification/suppression d'occurrences individuelles ou de toute la série
- ✅ Synchronisation Google Calendar (événements récurrents avec RRULE)
- ✅ Gestion des exceptions Google Calendar pour modifications/suppressions individuelles
- ✅ Interface utilisateur avec sélecteur de récurrence
- ✅ Génération dynamique des occurrences dans le calendrier
- ✅ Indicateur visuel pour les sessions récurrentes
- Statut : ✅ Complété
- Estimation : 5-7 jours de développement (réalisé)
- Référence : PLAN_AMELIORATIONS_CRM.md - Section "Gestion des Sessions & Réservations"
- Améliorations complétées récemment :
- ✅ Prévisualisation des occurrences (composant
RecurrencePreviewintégré dans le formulaire) - ✅ Modification de
recurrence_end_dateavec suppression automatique des occurrences au-delà - ✅ Modification du pattern de récurrence avec régénération automatique des occurrences
- ✅ Génération périodique des occurrences (job cron quotidien pour générer jusqu'à 12 mois à l'avance)
- Améliorations futures :
- ✅ Synchronisation bidirectionnelle depuis Google Calendar (Complété)
- ✅ Détection et synchronisation des occurrences modifiées dans Google Calendar
- ✅ Détection et suppression des occurrences supprimées dans Google Calendar
- ✅ Gestion des exceptions Google Calendar (modifications individuelles)
- ✅ Résolution de conflits pour les événements récurrents
- ✅ Synchronisation bidirectionnelle depuis Google Calendar (Complété)
- ✅ Prévisualisation des occurrences (composant
4. Segmentation avancée des contacts
- Impact : Marketing plus efficace
- Effort : Moyen
- Description : Permettre une segmentation avancée des contacts pour des campagnes marketing ciblées
- Statut : Non commencé
5. Workflows visuels
- Impact : Automatisation puissante
- Effort : Élevé
- Description : Créer un système de workflows visuels pour automatiser des processus métier
- Statut : Non commencé
6. Gestion des paiements ✅ COMPLÉTÉ
- Impact : Améliore le suivi financier
- Effort : Moyen-Élevé
- Description : Système complet de gestion des paiements et abonnements via Stripe
- Statut : ✅ Complété
- Fonctionnalités implémentées :
- ✅ Gestion des abonnements : Création, annulation et reprise d'abonnements (FREE, BASIC, PRO)
- ✅ Paiement des factures : Paiement des factures via Stripe Payment Intents avec Stripe Elements
- ✅ Collecte de méthodes de paiement : SetupIntent pour collecter les méthodes de paiement pour les abonnements
- ✅ Attachement de méthodes de paiement : Attachement automatique des méthodes de paiement au client Stripe et définition comme méthode par défaut
- ✅ Webhooks Stripe : Synchronisation automatique des statuts d'abonnements et paiements via webhooks
- ✅ Historique des paiements : Suivi complet de tous les paiements effectués
- ✅ Interface utilisateur : Formulaires de paiement sécurisés avec Stripe Elements, gestion des abonnements dans l'interface utilisateur
- Documentation :
backend/src/stripe/README.md
7. Architecture Workers BullMQ - Déportement OCR PDF, Relances, IA, Exports ✅ ~95% COMPLÉTÉ
- Impact : Très élevé - Améliore la maintenabilité, scalabilité et performance en déportant les actions lourdes
- Effort : Élevé (4-6 semaines)
- Description : Refactorisation de l'architecture pour séparer l'API synchrone (validation + persistance + enqueue) des workers asynchrones (exécution + retries + observabilité). Déportement des actions longues/lourdes (OCR PDF, relances, IA, exports) dans des workers BullMQ dédiés.
- Priorité : Haute
- Statut : ✅ ~95% complété (2026-01-31)
- Complété :
- ✅ 5 workers isolés :
WorkerEmailModule,WorkerAiModule,WorkerExportModule,WorkerDocModule,WorkerMlModule - ✅ Processors implémentés :
ExportBuildProcessor,EmailSendProcessor,AiRunProcessor,DocIngestProcessor,DocOcrProcessor,DocExtractStructuredProcessor, 6 ML processors - ✅ Exports complets : ACCOUNTING (invoices/quotes), CONTACTS, SESSIONS, GDPR, CUSTOM (tous routés vers ExportService)
- ✅ OCR PDF : Pipeline complet d'ingestion, OCR, extraction structurée
- ✅ IA orchestrée : T âches IA avec quotas, rate limiting, suivi des coûts
- ✅ Job tracking :
JobRunsServiceavec suivi complet (QUEUED → RUNNING → COMPLETED/FAILED) - ✅ Idempotence :
generateJobId()avec hash stable pour déduplication - ✅ Payloads versionnés : Tous les payloads
{ v: 1, ... }avec validation Zod - ✅ DLQ Replay : Endpoint
POST /api/job-runs/:id/replaypour rejouer les jobs échoués - ✅ Tests unitaires : 73 tests couvrant tous les processors et services (7 fichiers)
- ✅ Admin UI : Page
/system/jobsavec table des jobs, stats, filtres, et bouton replay - ✅ Fix duplicate queue : Suppression du
BullModule.registerQueueen double pour EXPORTS
- ✅ 5 workers isolés :
- Architecture :
- ✅ API synchrone : Validation (Zod) + persistance (Postgres) + enqueue (BullMQ)
- ✅ Workers asynchrones : Exécution + retries/backoff + idempotence + DLQ
- ✅ Contrats stables : Payloads versionnés
{ v: 1, ... }+ validation Zod - ✅ Storage centralisé : Artefacts stockés en R2 via
FileObjectsService - ✅ WorkerModule propre : Aucun import WebSocket/Search/Agent, uniquement infra + processors
- ✅ ScheduleModule :
ScheduleModule.forRoot()uniquement dansScheduleRuntimeModule
- Tables transversales :
- ✅
job_runs: Suivi d'exécution et corrélation logs - ✅
file_objects: Référentiel d'artefacts (R2) - ✅
export_jobs: Suivi des jobs d'export
- ✅
- Restant (~5%) :
- ⏳ Métriques Prometheus (compteurs bullmq_job_success/fail, histogramme durée)
- ⏳ Documentation DI_CONVENTIONS.md (optionnel)
- Fichiers clés :
- Backend :
src/workers/worker-*/,src/job-runs/,src/queue/ - Frontend :
src/pages/admin/AdminJobsPage/,src/client/job-runs/ - Tests :
src/__tests__/workers/(7 fichiers, 73 tests)
- Backend :
- Documentation :
docs/WORKERS_ARCHITECTURE.md: Principes, process, queues, conventions jobsdocs/DOCUMENT_PROCESSING_OCR.md: DDD + DB + endpoints + jobs + UIdocs/AI_ORCHESTRATION.md: Tasks, quotas, coûts, endpoints, workerdocs/EXPORTS.md: Types, statuts, R2, endpointsdocs/OBSERVABILITY.md: job_runs, corrélation, métriques, DLQ
- Référence : PLAN_AMELIORATIONS_CRM.md - Section "Infrastructure & Robustesse > 5.1. Architecture Workers BullMQ"
8. Monitoring et observabilité
- Impact : Essentiel pour la stabilité et le debugging
- Effort : Moyen
- Description : Système complet de monitoring avec Sentry, métriques de performance, logs centralisés et alertes
- Priorité : Haute
- Statut : Planifié
- Référence : PLAN_AMELIORATIONS_CRM.md - Section "Infrastructure & Robustesse"
8. Gestion des erreurs de connexion DB ✅
- Impact : Réduction des erreurs dans les jobs cron
- Effort : Faible
- Description : Retry automatique pour les erreurs de connexion PostgreSQL dans les schedulers
- Statut : ✅ Complété
- Référence : PLAN_AMELIORATIONS_CRM.md - Section "Performance & Scalabilité"
🔧 Améliorations Agent IA (Priorité Moyenne)
1. Gestion des erreurs améliorée
- Problème : Les erreurs sont parfois génériques ou peu informatives
- Solution :
- Créer des types d'erreurs spécifiques pour chaque type d'action
- Fournir des messages d'erreur plus détaillés et actionnables
- Ajouter des codes d'erreur pour faciliter le debugging
- Statut : À faire
- Référence : AGENT_IMPROVEMENTS.md (documentation interne)
2. Validation des actions avant exécution
- Problème : Les actions sont exécutées directement sans validation approfondie
- Solution :
- Ajouter une étape de validation pré-exécution
- Vérifier que toutes les données requises sont présentes
- Prévisualiser les changements avant exécution
- Demander confirmation pour les actions critiques
- Statut : À faire
3. Historique et audit des actions
- Problème : Pas de traçabilité complète des actions exécutées via l'agent
- Solution :
- Enregistrer toutes les actions dans un log d'audit
- Associer chaque action à la conversation qui l'a déclenchée
- Permettre de voir l'historique des actions par conversation
- Statut : À faire
4. Tests unitaires pour les helpers et handlers
- Statut actuel :
- ✅ Tests unitaires pour
ConflictDetectionHelper(26 tests) - Complété - 🚧 Tests unitaires pour les autres helpers (ActionHelpers, EntitySearchHelper)
- 🚧 Tests unitaires pour les handlers d'actions
- ✅ Tests unitaires pour
- Référence : AGENT_IMPROVEMENTS.md (documentation interne)
📊 Priorité Basse (Impact variable, Effort élevé)
1. Global Search & IA - Phase 3
- Impact : Intelligence avancée
- Effort : Élevé
- Description :
- Analyse et insights automatiques - 🚀 Déplacé vers LOT A (Priorité Haute) - Système d'insights proactifs avec règles déterministes. Voir section "IA Proactive Insights (LOT A - MVP)" dans Priorité Haute.
- Suggestions d'actions contextuelles
- Recherche conversationnelle
- Prédictions et recommandations
- Résumé et synthèse
- Statut : Planifié (insights automatiques traités séparément en LOT A)
2. Statistiques avancées pour bookings
- Impact : Améliore l'analyse des réservations
- Effort : Moyen
- Description :
- Dashboard avec statistiques avancées (réservations par période, taux d'annulation, créneaux populaires)
- Export des données (CSV, Excel, JSON)
- Graphiques et visualisations
- Estimation : 5-7 jours de développement
- Statut : Non commencé
3. Personnalisation de la page de réservation
- Impact : Améliore l'expérience client
- Effort : Moyen
- Description :
- Personnalisation des couleurs et du thème
- Messages de confirmation personnalisés
- Support multilingue amélioré
- Estimation : 3-4 jours de développement
- Statut : Non commencé
4. Gestion des timezones pour bookings
- Impact : Améliore l'expérience internationale
- Effort : Moyen
- Description :
- Détection automatique du timezone du client
- Affichage des heures dans le timezone local
- Conversion automatique lors de la réservation
- Estimation : 3-4 jours de développement
- Statut : Non commencé
5. Application mobile native
- Impact : Accessibilité mobile
- Effort : Très élevé
- Description : Développer une application mobile native (iOS/Android)
- Statut : Non commencé
6. Analytics prédictives
- Impact : Insights avancés
- Effort : Très élevé (nécessite ML)
- Description : Utiliser le machine learning pour prédire les tendances
- Statut : Non commencé
📝 Notes
- Ce document est évolutif et doit être mis à jour régulièrement
- Les priorités peuvent changer en fonction des retours utilisateurs
- Certaines améliorations peuvent être combinées pour optimiser le développement
- Il est important de valider les besoins avec les utilisateurs avant de développer
📚 Références
- PLAN_AMELIORATIONS_CRM.md - Référence détaillée des améliorations par domaine fonctionnel
- AGENT_IMPROVEMENTS.md (documentation interne) - Améliorations pour l'agent IA
- BOOKING_IMPROVEMENTS.md - Améliorations du système de réservation
- BOOKING_SYSTEM.md - Documentation du système de réservation