Référence Détaillée des Améliorations CRM - Aaperture
Note : Ce document est une référence détaillée organisée par domaine fonctionnel. Pour les priorités de développement, consultez PRIORITES.md qui est la source de vérité pour la planification.
Ce document consolide toutes les améliorations futures identifiées dans la documentation et propose de nouvelles suggestions basées sur l'analyse du système actuel, organisées par domaine fonctionnel.
📋 Légende
- ✅ Implémenté - Fonctionnalité complètement implémentée et opérationnelle
- ⚠️ Partiellement implémenté - Fonctionnalité en partie implémentée, nécessite des améliorations
- 🚀 En cours / Priorité - Fonctionnalité en cours de développement ou priorisée
- Non implémenté - Fonctionnalité proposée mais pas encore développée
🎯 Focus Actuel
Global Search & Intelligence Artificielle - Développement d'un assistant IA intégré au Global Search pour permettre aux utilisateurs de builder des vues personnalisées et d'exécuter des actions complexes via des prompts en langage naturel.
État Actuel du Global Search
✅ Fonctionnalités Implémentées :
- Recherche unifiée dans sessions, contacts, devis, factures, et Notion
- Recherche en temps réel avec debounce (300ms)
- Intégration Notion avec recherche dans pages et bases de données
- Navigation complète au clavier (Cmd+K / Ctrl+K, flèches, Enter, Escape)
- Actions rapides (créer session, créer contact)
- Résultats groupés par catégorie avec compteurs
- Interface utilisateur optimisée avec états de chargement séparés
✅ Phase 1 Complétée :
- ✅ Assistant conversationnel IA intégré
- ✅ Builder de vues personnalisées via prompts
- ✅ Génération d'actions complexes
- ✅ Traduction de requêtes en langage naturel en filtres
✅ Phase 2 Complétée :
- ✅ Création assistée par IA d'entités
- ✅ Génération de rapports intelligents
- ✅ Rédaction assistée
🚀 Prochaines Étapes (Phase 3) :
- Analyse et insights automatiques
- Suggestions d'actions contextuelles
- Recherche conversationnelle
- Prédictions et recommandations
- Résumé et synthèse
📊 Analytics & Reporting
Améliorations identifiées dans la documentation
- ✅ Custom date range presets - Présélections de plages de dates (semaine, mois, trimestre, année)
- Implémenté : Frontend avec presets (week, month, quarter, year, all) dans
AnalyticsPage.tsx
- Implémenté : Frontend avec presets (week, month, quarter, year, all) dans
- ⚠️ Scheduled report generation - Génération automatique de rapports planifiés
- Partiellement implémenté : Les emails peuvent être planifiés (devis, factures, contrats), mais pas la génération automatique de rapports analytics
- ⚠️ Email delivery of reports - Envoi automatique de rapports par email
- Partiellement implémenté : Les emails de devis/factures peuvent être envoyés/planifiés, mais pas les rapports analytics
- ✅ Export to other formats - Export vers Excel, CSV en plus du PDF
- Implémenté : Backend
ExportServicesupporte CSV, Excel (XLSX), JSON et PDF
- Implémenté : Backend
- ⚠️ Custom metrics and KPIs - Métriques personnalisables par l'utilisateur
- À vérifier : Les métriques semblent fixes, pas de personnalisation visible
- ⚠️ Comparison between periods - Comparaison entre différentes périodes (mois vs mois précédent, année vs année précédente)
- À vérifier : Support de date range mais pas d'interface claire pour comparer des périodes
Suggestions supplémentaires
- Tableaux de bord personnalisables - Permettre aux utilisateurs de créer leurs propres tableaux de bord avec les métriques qu'ils souhaitent
- Alertes sur métriques - Notifications automatiques lorsque certaines métriques atteignent des seuils (ex: revenu mensuel > X€)
- Graphiques interactifs - Graphiques cliquables pour explorer les données en détail
- Analyse de tendances prédictives - Utiliser les données historiques pour prédire les tendances futures
- Rapports comparatifs multi-utilisateurs - Comparer les performances entre différents utilisateurs (pour les admins)
📤 Export & Import
Améliorations identifiées dans la documentation
- ✅ Système d'export centralisé - Système unifié pour tous les exports
- Implémenté : Service centralisé
ExportServiceavec support multi-formats - Formats supportés : PDF, Word (DOCX), CSV, Excel (XLSX), JSON
- Entités : Sessions, Contacts, Quotes, Invoices, Conversations, Roadmaps, Contract Templates
- Documentation :
docs/EXPORT_SYSTEM.md
- Implémenté : Service centralisé
- ✅ Exports multi-formats - Support de plusieurs formats pour chaque type d'export
- Implémenté : Tous les exports supportent maintenant PDF, Word, CSV, Excel selon le contexte
- Backend : Endpoints unifiés avec paramètre
format - Frontend : Composant
ExportFormatDialogréutilisable
- ❌ Import functionality for CSV/Excel - Fonctionnalité d'import depuis CSV/Excel
- Non implémenté : Mentionné comme "Future Enhancement" dans
export/README.md
- Non implémenté : Mentionné comme "Future Enhancement" dans
- ❌ Scheduled exports - Exports planifiés automatiques
- Non implémenté : Mentionné comme "Future Enhancement" dans
export/README.md
- Non implémenté : Mentionné comme "Future Enhancement" dans
- ❌ Email delivery of exports - Envoi automatique d'exports par email
- Non implémenté : Mentionné comme "Future Enhancement" dans
export/README.md
- Non implémenté : Mentionné comme "Future Enhancement" dans
- ⚠️ Custom field selection - Sélection personnalisée des champs à exporter
- À vérifier : Les exports semblent exporter tous les champs par défaut, pas de sélection personnalisée visible
- ⚠️ Export templates - Templates d'export pré-configurés
- À vérifier : Pas de système de templates visible
Suggestions supplémentaires
- Import avec validation - Validation des données importées avec rapport d'erreurs
- Import incrémental - Possibilité de mettre à jour des données existantes via import
- Mapping de champs personnalisé - Permettre le mapping de colonnes CSV vers les champs du CRM
- Import depuis autres sources - Import depuis Google Contacts, Outlook, etc.
- Synchronisation bidirectionnelle - Synchronisation automatique avec des sources externes
🔍 Recherche & Filtrage
Recherche Globale (Global Search)
- ✅ Recherche globale unifiée - Recherche unifiée dans toutes les entités (sessions, contacts, devis, factures, Notion)
- ✅ Recherche en temps réel - Recherche avec debounce pour optimiser les performances
- ✅ Intégration Notion - Recherche dans les pages et bases de données Notion
- ✅ Navigation au clavier - Navigation complète au clavier (Cmd+K / Ctrl+K, flèches, Enter)
- ✅ Actions rapides - Actions rapides depuis la recherche (créer session, créer contact)
- ✅ Résultats groupés - Résultats organisés par catégorie avec compteurs
- ⚠️ Recherche sémantique - Recherche intelligente basée sur le sens (partiellement implémenté via filtrage Notion)
- ⚠️ Historique de recherche - Conserver l'historique des recherches récentes (non implémenté)
🤖 Global Search & Intelligence Artificielle
Phase 1 : Assistant IA pour la construction de vues et actions (Priorité Haute) ✅
- ✅ Assistant conversationnel intégré - Un chatbot IA accessible directement depuis le Global Search (Cmd+K) pour répondre aux questions et exécuter des commandes
- Exemple : "Quel est le revenu total du mois dernier ?", "Montre-moi les sessions avec Jean Dupont."
- Implémenté : Détection multilingue (français/anglais), vérification OpenAI, traitement automatique
- ✅ Création assistée par IA de vues personnalisées - Générer des vues filtrées et personnalisées à partir de prompts en langage naturel
- Exemple : "Crée une vue des sessions de mariage du mois de juillet avec un montant supérieur à 2000€"
- Exemple : "Affiche tous les contacts qui n'ont pas eu de session depuis 6 mois"
- Exemple : "Montre-moi les devis en attente pour les sessions de type 'portrait'"
- Implémenté : Génération de filtres intelligents, application automatique des filtres
- ✅ Génération d'actions complexes - L'IA peut générer et exécuter des actions complexes basées sur des prompts
- Exemple : "Crée une facture pour toutes les sessions payées du mois dernier"
- Exemple : "Je veux créer une session pour Fred Le Marquier pour son mariage le 22 août 2026"
- Exemple : "Créez moi un contact et un devis de 2000€ pour cette session"
- Implémenté : Auto-exécution des actions, actions composites (contact + session + devis), notifications automatiques
- ✅ Builder de filtres intelligents - L'IA traduit les requêtes en langage naturel en filtres complexes
- Exemple : "Sessions de mariage en été 2024 avec montant > 3000€" → Filtres automatiques appliqués
- Implémenté : Traduction automatique en filtres structurés, application aux requêtes DB
- Exemple : "Contacts actifs avec au moins 2 sessions cette année" → Filtres et agrégations automatiques
Phase 2 : Création assistée par IA (Priorité Moyenne) ✅
- ✅ Création assistée par IA d'entités - Générer des brouillons de sessions, contacts, devis, factures à partir de prompts
- Exemple : "Crée une nouvelle session photo pour le mariage de Marie et Pierre le 15 juillet 2024 à Paris, avec un devis de 2500€."
- Implémenté : Service
AiCreationServiceavec endpointPOST /api/ai-assistant/draft - Fonctionnalités : Génération de brouillons pour sessions, contacts, devis, factures avec suggestions et avertissements
- Fichiers :
backend/src/ai-assistant/ai-creation.service.ts
- ✅ Génération de rapports intelligents - Demander des rapports personnalisés via des prompts, l'IA agrège les données et génère le rapport
- Exemple : "Génère un rapport PDF des revenus par type de session pour le dernier trimestre."
- Implémenté : Service
AiReportServiceavec endpointPOST /api/ai-assistant/report - Fonctionnalités : Génération de rapports avec sections, insights, recommandations basées sur les données fournies
- Fichiers :
backend/src/ai-assistant/ai-report.service.ts
- ✅ Rédaction assistée - Utiliser l'IA pour générer des ébauches d'emails, de descriptions de sessions, de notes de contact, etc.
- Exemple : "Rédige un email de suivi pour le devis #2024-001 en rappelant les avantages de notre offre."
- Implémenté : Service
AiWritingServiceavec endpointPOST /api/ai-assistant/writing - Fonctionnalités : Génération d'emails, descriptions, notes avec support de contexte, ton, langue
- Fichiers :
backend/src/ai-assistant/ai-writing.service.ts
- Statut : ✅ Complété (2025-01-XX)
- Documentation :
backend/src/ai-assistant/README.md,docs/AI_SEARCH_ARCHITECTURE.md
Phase 3 : Intelligence avancée (Priorité Basse)
- Analyse et insights automatiques - L'IA analyse les données du CRM et propose des insights proactifs
- Exemple : "Vous avez 3 clients inactifs depuis plus de 6 mois, souhaitez-vous leur envoyer un email de relance ?"
- Suggestions d'actions contextuelles - Basé sur le contexte de la recherche ou de la page actuelle, l'IA propose des actions pertinentes
- Exemple : Si l'utilisateur recherche un contact, l'IA pourrait suggérer "Envoyer un email", "Créer une session", "Voir les devis en attente"
- Recherche conversationnelle - Permettre aux utilisateurs de poser des questions en langage naturel pour trouver des informations
- Exemple : "Quels sont les contacts qui ont un anniversaire ce mois-ci et qui n'ont pas eu de session depuis un an ?"
- Prédictions et recommandations - L'IA pourrait prédire la probabilité de conversion d'un devis ou recommander des actions pour améliorer la relation client
- Résumé et synthèse - Demander à l'IA de résumer des conversations, des notes de session ou des documents Notion
- Exemple : "Résume les points clés de la dernière session avec le client X."
Suggestions supplémentaires
- Filtres sauvegardés - Sauvegarder des combinaisons de filtres fréquemment utilisées
- Recherche par tags - Recherche et filtrage avancé par tags avec opérateurs logiques (ET, OU, SAUF)
- Suggestions de recherche - Autocomplétion intelligente basée sur les données existantes
👥 Gestion des Contacts
Suggestions basées sur l'analyse
- ❌ Segmentation avancée - Créer des segments de contacts avec critères complexes
- Non implémenté : Pas de système de segmentation de contacts
- ❌ Scoring de contacts - Système de scoring pour identifier les contacts les plus prometteurs
- Non implémenté : Pas de système de scoring automatique des contacts
- ⚠️ Historique d'interactions - Timeline complète de toutes les interactions avec un contact
- Partiellement implémenté : Système de tracking d'emails (ouvertures, clics) via
email_trackingtable - Fonctionnalités : Tracking des emails envoyés (OPEN, LINK_CLICK), association avec contacts/quotes/invoices
- Manquant : Timeline complète centralisée (emails, sessions, appels, notes), vue dédiée dans l'interface contact
- Partiellement implémenté : Système de tracking d'emails (ouvertures, clics) via
- ❌ Relations entre contacts - Gérer les relations entre contacts (famille, amis, collègues)
- Non implémenté : Pas de système de gestion des relations entre contacts
- ❌ Import depuis réseaux sociaux - Import automatique depuis Instagram, Facebook, etc.
- Non implémenté : Pas d'intégration avec les réseaux sociaux pour l'import de contacts
- ⚠️ Détection de doublons améliorée - Algorithme plus intelligent pour détecter les doublons
- Partiellement implémenté : Détection automatique de contacts similaires lors de la création via l'agent IA (
ConflictDetectionHelper.findSimilarContacts) - Fonctionnalités : Recherche par nom (prénom, nom, combinaisons), filtrage des contacts similaires, détection de conflits avant création
- Limitations : Détection uniquement lors de la création via agent IA, pas d'interface dédiée pour détecter les doublons existants
- Partiellement implémenté : Détection automatique de contacts similaires lors de la création via l'agent IA (
- ❌ Fusion de contacts - Outil pour fusionner des contacts en doublon
- Non implémenté : Pas d'outil de fusion de contacts (seulement détection de doublons)
📅 Gestion des Sessions & Réservations
Fonctionnalités implémentées
- ✅ Gestion de disponibilité - Système de gestion des créneaux disponibles/bloqués avec support des créneaux récurrents
- Création de créneaux uniques ou récurrents (hebdomadaire, quotidien)
- Support des jours spécifiques via
byDay(MO, TU, WE, etc.) - Date de fin de récurrence optionnelle
- Expansion automatique des créneaux récurrents en occurrences individuelles
- ✅ Synchronisation calendrier - Sync bidirectionnelle avec Google Calendar (toutes les 5 minutes) avec résolution de conflits intelligente
- Synchronisation automatique des événements
- Gestion des conflits et résolution intelligente
- Support des événements récurrents
- ✅ Système de réservation publique - Interface publique pour permettre aux clients de réserver des créneaux
- Interface publique : Page de réservation accessible via URL publique (
/booking/:userId) - Calendrier interactif : Affichage des créneaux disponibles par mois avec navigation
- Formulaire de réservation : Nom, email, téléphone (obligatoire), type de rendez-vous (téléphone/vidéo), notes
- Création d'événements Google Calendar : Les réservations créent directement des événements (pas de sessions)
- Préfixe
[MEETING]: Identification claire des rendez-vous dans le calendrier - Filtrage intelligent : Exclusion automatique des créneaux déjà réservés
- Cache temporaire : Gestion du délai de propagation Google Calendar (5 minutes)
- Tokens d'annulation : Tokens sécurisés et encryptés pour annuler les réservations
- Emails automatiques : Confirmation au client et notification au User
- Notifications in-app et push : Notifications en temps réel pour le User
- Interface de gestion : Panel de gestion des bookings avec statistiques (total, upcoming, past)
- Édition et suppression : Modification et suppression des bookings depuis l'interface User
- Documentation OpenAPI : Documentation complète des endpoints publics
- Tests unitaires : Couverture >80% pour les services critiques
- Statut : ✅ Production-ready (56% des améliorations planifiées complétées)
- Interface publique : Page de réservation accessible via URL publique (
Suggestions basées sur l'analyse
- ✅ Calendrier visuel amélioré - Vue calendrier avec drag & drop, vue mensuelle/semaine/jour
- Complété : Vue timeline pour la semaine et le jour avec grille horaire (0h-23h), positionnement précis des événements/sessions, affichage des créneaux de disponibilité, visualisation des chevauchements, légende interactive, filtres visuels, vue agenda/liste, drag & drop dans toutes les vues (Month, Week, Day)
- Documentation : Voir
docs/CALENDAR_VISUAL_IMPROVEMENTS.md
- ✅ Planification récurrente - Sessions récurrentes (hebdomadaire, mensuelle, quotidienne)
- Statut : ✅ Complété
- Description : Permettre de créer des sessions récurrentes avec des patterns de récurrence similaires aux créneaux de disponibilité
- Fonctionnalités implémentées :
- ✅ Patterns de récurrence : Quotidien, hebdomadaire (avec jours spécifiques via
byDay), mensuel, annuel avec intervalle personnalisable - ✅ Date de fin : Date de fin de récurrence optionnelle
- ✅ Gestion des occurrences :
- ✅ Génération automatique des occurrences individuelles lors de la création d'une session récurrente (6 mois à l'avance)
- ✅ Génération dynamique des occurrences dans le calendrier pour affichage au-delà de la période générée
- ✅ Possibilité de modifier/supprimer une occurrence spécifique sans affecter les autres
- ✅ Possibilité de modifier toutes les occurrences d'une série
- ✅ Visualisation de la série récurrente dans le calendrier avec indicateur visuel (icône Repeat, couleur violette)
- ✅ Synchronisation Google Calendar :
- ✅ Création d'événements récurrents dans Google Calendar avec
recurrence(RRULE) - ✅ Gestion des exceptions pour modifications d'occurrences individuelles (
updateRecurringSessionOccurrence) - ✅ Gestion des exceptions pour suppressions d'occurrences individuelles (
deleteRecurringSessionOccurrence)
- ✅ Création d'événements récurrents dans Google Calendar avec
- ✅ Interface utilisateur :
- ✅ Option "Récurrent" lors de la création/modification de session (
RecurrenceSelector) - ✅ Sélecteur de fréquence (quotidien, hebdomadaire, mensuel, annuel)
- ✅ Sélection des jours de la semaine pour récurrence hebdomadaire (checkboxes)
- ✅ Intervalle personnalisable (toutes les X semaines/mois/etc.)
- ✅ Date de fin de récurrence
- ✅ Indicateur visuel dans le calendrier pour les sessions récurrentes
- ✅ Dialog de confirmation pour actions sur occurrences individuelles vs série complète (
RecurringSessionActionDialog)
- ✅ Option "Récurrent" lors de la création/modification de session (
- ✅ Patterns de récurrence : Quotidien, hebdomadaire (avec jours spécifiques via
- Architecture technique implémentée :
- ✅ Base de données : Migration Liquibase ajoutant
is_recurring,recurrence_pattern(JSON),recurrence_end_date,parent_session_idà la tablesessions - ✅ Backend :
- ✅ Helper
RecurringSessionExpanderpour générer les occurrences (similaire àRecurringSlotExpander) - ✅ Modification de
SessionsServicepour gérer la création/mise à jour/suppression de sessions récurrentes - ✅ Méthode
updateSingleSessionpour encapsuler la logique de mise à jour d'une session - ✅ Support de
updateAllOccurrencesdans le endpoint de mise à jour - ✅ Support de
deleteAllOccurrencesdans le endpoint de suppression - ✅
GoogleCalendarService.createRecurringSessionEventpour créer des événements récurrents avec RRULE - ✅
GoogleCalendarService.updateRecurringSessionOccurrencepour créer des exceptions lors de modifications individuelles - ✅
GoogleCalendarService.deleteRecurringSessionOccurrencepour créer des exceptions lors de suppressions individuelles
- ✅ Helper
- ✅ Frontend :
- ✅ Composant
RecurrenceSelectordans le formulaire de création/modification de session - ✅ Composant
RecurringSessionActionDialogpour gérer les actions sur occurrences vs série - ✅ Helper
expandRecurringSessionspour générer dynamiquement les occurrences dans le calendrier - ✅ Modification de
useCalendarDatapour fusionner occurrences existantes et générées dynamiquement - ✅ Affichage visuel des sessions récurrentes dans
DraggableSessionetCalendarLegend
- ✅ Composant
- ✅ Base de données : Migration Liquibase ajoutant
- Cas d'usage :
- Sessions de coaching hebdomadaires (tous les lundis à 10h)
- Séances photo mensuelles (premier samedi de chaque mois)
- Sessions de suivi quotidiennes pendant une période
- Événements annuels récurrents
- Fichiers principaux :
backend/src/sessions/recurring-session-expander.helper.tsbackend/src/google-calendar/google-calendar.service.ts(méthodes récurrentes)backend/src/sessions/sessions.service.ts(logique de gestion)frontend/src/pages/sessions/SessionFormPage/components/RecurrenceSelector.tsxfrontend/src/pages/calendar/CalendarPage/helpers/expandRecurringSessions.tsfrontend/src/pages/calendar/CalendarPage/hooks/useCalendarData.ts
- Améliorations implémentées récemment :
- ✅ Prévisualisation des occurrences : Afficher une liste de prévisualisation des occurrences qui seront générées dans le formulaire de création
- Statut : ✅ Complété
- Description : Composant
RecurrencePreviewintégré dans le formulaire de création/modification de session, affichant jusqu'à 20 occurrences avec mise à jour en temps réel lors des changements de pattern ou de dates - Fichiers :
frontend/src/pages/sessions/SessionFormPage/components/RecurrencePreview.tsx
- ✅ Modification de
recurrence_end_date: Supprimer automatiquement les occurrences au-delà de la nouvelle date de fin- Statut : ✅ Complété
- Description : Lors de la modification de la date de fin de récurrence d'une session parent récurrente, suppression automatique des occurrences futures au-delà de la nouvelle date, avec nettoyage des événements Google Calendar et fichiers associés
- Fichiers :
backend/src/sessions/sessions.service.ts(méthodeupdateSingleSession)
- ✅ Modification du pattern de récurrence : Régénérer les occurrences si le pattern de récurrence est modifié
- Statut : ✅ Complété
- Description : Détection automatique des changements de pattern de récurrence, suppression de toutes les occurrences existantes (et leurs événements Google Calendar, fichiers, etc.), régénération des occurrences avec le nouveau pattern, copie automatique des tags/contacts/providers aux nouvelles occurrences, mise à jour de l'événement Google Calendar récurrent
- Fichiers :
backend/src/sessions/sessions.service.ts(méthoderegenerateOccurrencesForParent)
- ✅ Génération périodique des occurrences : Job cron pour générer automatiquement les occurrences futures dans la DB (au-delà de 6 mois) pour améliorer les performances de recherche/statistiques
- Statut : ✅ Complété
- Description : Scheduler
RecurringSessionsSchedulerexécuté quotidiennement à 2h du matin, générant automatiquement les occurrences jusqu'à 12 mois à l'avance pour toutes les sessions récurrentes actives. Génération uniquement si la dernière occurrence est dans moins de 6 mois. Copie automatique des tags/contacts/providers aux nouvelles occurrences. - Fichiers :
backend/src/sessions/recurring-sessions.scheduler.ts,backend/src/sessions/sessions.service.ts(méthodegenerateFutureOccurrences)
- ✅ Prévisualisation des occurrences : Afficher une liste de prévisualisation des occurrences qui seront générées dans le formulaire de création
- Améliorations complétées récemment :
- ✅ Synchronisation bidirectionnelle depuis Google Calendar : Synchronisation complète des modifications d'événements récurrents depuis Google Calendar vers le CRM
- Statut : ✅ Complété
- Description : Le scheduler de synchronisation Google Calendar détecte et synchronise les modifications d'événements récurrents, y compris les exceptions et suppressions
- Fonctionnalités implémentées :
- ✅ Détection des occurrences modifiées dans Google Calendar (exceptions)
- ✅ Synchronisation des modifications vers les occurrences CRM correspondantes
- ✅ Création automatique d'occurrences manquantes si modifiées dans Google Calendar
- ✅ Détection et suppression des occurrences supprimées dans Google Calendar
- ✅ Gestion des conflits pour éviter d'écraser les modifications récentes du CRM
- ✅ Support des événements récurrents avec gestion des EXDATE (occurrences supprimées)
- Fichiers :
backend/src/google-calendar/google-calendar-sync.scheduler.ts(méthodessyncRecurringExceptionetsyncRecurringParentDeletedOccurrences)
- ✅ Synchronisation bidirectionnelle depuis Google Calendar : Synchronisation complète des modifications d'événements récurrents depuis Google Calendar vers le CRM
- ✅ Checklist de session - Checklists personnalisables par type de session
- Statut : ✅ Complètement implémenté (Backend + Frontend)
- Description : Système complet de gestion des checklists personnalisables par type de session pour s'assurer que toutes les étapes sont complétées
- Backend : ✅ Complété
- Service complet avec CRUD pour templates et items (
SessionChecklistsService) - Endpoints API fonctionnels (
/session-checklists/*) - Tables de base de données créées
- Utilisée dans
session-roadmap.service.tspour générer les roadmaps avec checklist
- Service complet avec CRUD pour templates et items (
- Frontend : ✅ Complété
- Onglet "Checklist" dans la vue de session (premier onglet)
- Affichage et gestion des items de checklist (groupés par statut)
- Application de templates à une session
- Modification du statut des items (checkbox)
- Création/modification/suppression d'items manuels
- Indicateurs visuels pour les items en retard
- Fonctionnalités implémentées :
- ✅ Templates de checklists par type de session (mariage, séance photo, événement, etc.)
- ✅ Checklist personnalisable par utilisateur
- ✅ Items de checklist avec statut (PENDING, IN_PROGRESS, COMPLETED, SKIPPED)
- ✅ Assignation d'items à des membres de l'équipe
- ✅ Dates d'échéance pour les items
- ✅ Application de templates à des sessions
- ✅ Interface utilisateur complète avec dialogs pour créer/modifier
- ✅ Groupement automatique des items par statut
- ✅ Badges de statut avec support dans
StatusBadgecomponent
- Fichiers backend :
- ✅
backend/src/session-checklists/session-checklists.service.ts - ✅
backend/src/session-checklists/session-checklists.controller.ts - ✅
backend/src/session-checklists/session-checklists.module.ts - ✅
backend/src/session-checklists/dto/*.ts
- ✅
- Fichiers frontend :
- ✅
frontend/src/client/session-checklists/useSessionChecklists.ts(hooks API React Query) - ✅
frontend/src/pages/sessions/SessionViewPage/components/ChecklistTab.tsx(onglet checklist) - ✅ Intégration dans
SessionTabs.tsxetSessionViewPage.tsx - ✅ Support du type "checklist" dans
StatusBadge.tsx - ✅ Traductions françaises complètes
- ✅
- Accès :
/sessions/$id→ Onglet "Checklist" (premier onglet) - Date de complétion : 2025-01-XX
- Rappels automatiques - Rappels par email/SMS avant les sessions
- Description : Système de rappels automatiques pour notifier les utilisateurs avant les sessions
- Fonctionnalités proposées :
- Configuration des délais de rappel (24h avant, 1h avant, etc.)
- Rappels par email et/ou SMS
- Rappels personnalisables par type de session
- Rappels pour les participants (contacts) de la session
- Template de messages personnalisables
- Intégration avec le système de notifications existant
- Priorité : Moyenne
- Estimation : 3-4 jours de développement
- ✅ Vue calendrier améliorée - Améliorations supplémentaires de l'interface calendrier
- Statut : ✅ Complété
- Fonctionnalités implémentées :
- ✅ Vue multi-calendrier : Affichage parallèle des sessions, disponibilités et événements Google Calendar dans toutes les vues
- ✅ Recherche dans le calendrier : Recherche rapide de sessions/événements directement depuis la vue calendrier avec navigation vers la date
- ✅ Filtres avancés : Filtres par statut de session, type de session, contact, tags avec interface dédiée
- ✅ Vue liste améliorée : Vue agenda/liste avec tri chronologique et filtres, groupement par jour
- ✅ Export calendrier : Export au format iCal/ICS pour import dans d'autres calendriers (Google Calendar, Outlook, etc.)
- ✅ Impression : Impression du calendrier avec vue formatée optimisée pour l'impression (pleine page, sans interface)
- ✅ Vue année : Vue annuelle pour planification à long terme avec 12 mois affichés
- ✅ Indicateurs visuels : Badges pour sessions en retard, sessions sans contact, sessions sans devis/facture
- ✅ Optimisation des performances : Utilisation de
placeholderDataetstaleTimepour éviter les rechargements inutiles lors du changement de vue - ✅ Refactoring : Refactorisation de
CalendarPage.tsxen hooks et composants plus petits pour améliorer la maintenabilité
- Fichiers principaux :
frontend/src/pages/calendar/CalendarPage/CalendarPage.tsx(refactorisé)frontend/src/pages/calendar/CalendarPage/components/CalendarSearch.tsxfrontend/src/pages/calendar/CalendarPage/components/AdvancedCalendarFilters.tsxfrontend/src/pages/calendar/CalendarPage/components/CalendarActions.tsx(export iCal)frontend/src/pages/calendar/CalendarPage/components/PrintCalendarView.tsxfrontend/src/pages/calendar/CalendarPage/components/YearView.tsxfrontend/src/pages/calendar/CalendarPage/hooks/useCalendarState.tsfrontend/src/pages/calendar/CalendarPage/hooks/useCalendarHandlers.tsfrontend/src/pages/calendar/CalendarPage/components/CalendarContent.tsxfrontend/src/pages/calendar/CalendarPage/components/CalendarViewRenderer.tsxfrontend/src/pages/calendar/CalendarPage/components/CalendarSidebar.tsx
- Documentation : Voir
docs/CALENDAR_VISUAL_IMPROVEMENTS.md
- ✅ Gestion des conflits - Verrouillage Redis pour éviter les doubles réservations simultanées
- Statut : ✅ COMPLÉTÉ - Production-ready
- Implémentation :
- Verrouillage distribué avec Redis (
CacheService.acquireLock()/releaseLock()) - Utilisation de Redis
SET NX EXpour un verrouillage atomique - Verrou avec expiration automatique (60 secondes) pour éviter les verrous orphelins
- Clé de verrou unique :
booking:lock:{userId}:{startDate}:{endDate} - Nettoyage automatique des verrous dans le bloc
finally - Message d'erreur clair si le créneau est déjà pris
- Verrouillage distribué avec Redis (
- Fichiers :
backend/src/cache/cache.service.ts,backend/src/booking/booking.controller.ts - Tests : Tests unitaires complets dans
backend/src/__tests__/cache/cache.service.spec.tset tests d'intégration dansbackend/src/__tests__/booking/booking-conflict-integration.spec.ts
- ✅ Statistiques avancées - Graphiques, export, filtres avancés pour les bookings
- Statut : ✅ COMPLÉTÉ - Production-ready
- Implémentation :
- Dashboard avec statistiques avancées (réservations par jour, semaine, mois)
- Taux d'annulation calculé à partir des tokens d'annulation
- Créneaux les plus populaires (par heure de la journée)
- Heures de pointe (top 3 heures)
- Export des données (CSV, Excel, JSON) avec upload sur R2 et signed URLs
- Filtrage par période (timeMin, timeMax) avec presets (semaine, mois, trimestre, année, tout)
- Graphiques Recharts avec visualisations interactives
- Fichiers :
backend/src/booking/bookings.controller.ts(endpoints/analyticset/export),frontend/src/pages/booking/BookingAnalyticsPage/ - Note : Filtrage actuellement limité à la plage de dates. Les filtres avancés par statut, contact, etc. peuvent être ajoutés ultérieurement si nécessaire.
- ✅ Personnalisation - Personnalisation des couleurs et du thème de la page de réservation
- Statut : ✅ COMPLÉTÉ - Production-ready
- Implémentation :
- Personnalisation des couleurs (couleur principale personnalisable via hex)
- Message d'accueil personnalisé (remplace le message par défaut)
- Messages de confirmation personnalisés
- Application de la couleur principale via CSS variables
- Interface d'administration complète (
BookingSettingsPage) pour gérer les settings - Validation des couleurs (format hex) et des longueurs de messages (max 2000 caractères)
- Fichiers :
backend/src/booking/booking-settings.service.ts,frontend/src/pages/settings/BookingSettingsPage/,infra/liquibase/changes/0107_create_booking_settings/
- ✅ Gestion des timezones - Détection automatique et conversion des timezones
- Statut : ✅ COMPLÉTÉ - Production-ready
- Implémentation :
- Détection automatique du timezone du client via
Intl.DateTimeFormat().resolvedOptions().timeZone - Affichage des heures dans le timezone local du client
- Indication du timezone utilisé (abréviation : CET, EST, PST, etc.)
- Conversion automatique lors de l'affichage dans tous les composants (calendrier, formulaire, confirmation)
- Dates stockées en UTC dans la base de données (comportement standard)
- Détection automatique du timezone du client via
- Fichiers :
frontend/src/utils/timezone.utils.ts,frontend/src/pages/booking/BookingPage/components/BookingCalendar.tsx,frontend/src/pages/booking/BookingPage/components/BookingConfirmation.tsx
💰 Gestion Financière
Fonctionnalités implémentées
- ✅ Intégration Stripe complète - Système complet de gestion des paiements et abonnements
- ✅ Gestion des abonnements : Création, annulation et reprise d'abonnements (FREE, BASIC, PRO)
- Plans configurables via l'interface admin
- Support mensuel et annuel
- Gestion des cycles de facturation
- ✅ Paiement des factures : Paiement sécurisé des factures via Stripe Payment Intents
- Interface utilisateur avec Stripe Elements
- Confirmation de paiement en temps réel
- Mise à jour automatique du statut des factures via webhooks
- ✅ Collecte de méthodes de paiement : SetupIntent pour collecter les méthodes de paiement
- Endpoint
POST /api/stripe/setup-intentpour créer un SetupIntent - Intégration avec Stripe Elements pour la collecte sécurisée
- Support des cartes bancaires
- Endpoint
- ✅ Attachement de méthodes de paiement : Attachement automatique au client Stripe
- Endpoint
POST /api/stripe/payment-methods/:paymentMethodId/attach - Définition automatique comme méthode de paiement par défaut
- Utilisé pour les abonnements récurrents
- Endpoint
- ✅ Webhooks Stripe : Synchronisation automatique des événements
customer.subscription.created/updated/deletedpayment_intent.succeeded/failed- Mise à jour automatique des statuts dans la base de données
- ✅ Historique des paiements : Suivi complet de tous les paiements
- Endpoint
GET /api/stripe/payments/history - Association avec les factures
- Traçabilité complète des transactions
- Endpoint
- ✅ Interface utilisateur : Formulaires et gestion complète
- Page de sélection des plans d'abonnement
- Formulaires de paiement sécurisés avec Stripe Elements
- Gestion des abonnements dans le profil utilisateur
- Onboarding avec collecte de méthode de paiement
- Documentation :
backend/src/stripe/README.md
- ✅ Gestion des abonnements : Création, annulation et reprise d'abonnements (FREE, BASIC, PRO)
Suggestions d'amélioration
- Suivi des paiements partiels - Suivi détaillé des paiements partiels et relances
- Automatisation de facturation - Génération automatique de factures récurrentes
- Intégration bancaire - Import automatique des transactions bancaires
- Prévisions financières - Prévisions de revenus basées sur les devis en attente
- Gestion des acomptes - Gestion des acomptes et soldes
- Multi-devises amélioré - Conversion automatique et suivi multi-devises
- Rapports fiscaux - Génération automatique de rapports pour la comptabilité
📧 Communication & Notifications
Suggestions basées sur l'analyse
- ❌ Templates d'email personnalisés - Éditeur visuel pour créer des templates d'email
- Non implémenté : Pas d'éditeur visuel pour les templates d'email (templates existants mais pas d'éditeur visuel)
- ❌ Campagnes email - Envoi de campagnes email à plusieurs contacts
- Non implémenté : Pas de système de campagnes email (seulement envoi individuel)
- ❌ SMS integration - Envoi de SMS pour les rappels et notifications
- Non implémenté : Pas d'intégration SMS
- Notifications personnalisables - Permettre aux utilisateurs de configurer leurs préférences de notification
- Non implémenté : Pas de système de préférences de notifications par type
- Notifications groupées - Regrouper les notifications similaires
- Non implémenté : Les notifications sont affichées individuellement
- ⚠️ Historique de communication - Vue centralisée de toutes les communications avec un contact
- Partiellement implémenté : Tracking des emails (voir "Historique d'interactions" ci-dessus)
- Manquant : Vue centralisée dans l'interface contact, intégration de tous les canaux (email, SMS, appels)
Notifications Push
- ✅ Notifications push navigateur - Implémentation des notifications push via Service Worker
- ✅ Permissions et abonnements - Gestion des permissions et des abonnements push
- ✅ Types de notifications - Notifications pour différents événements (nouveau devis, facture payée, rappel session, etc.)