Commit Graph

35 Commits

Author SHA1 Message Date
Manus
2095731e80 Checkpoint: Remise du menu Rappels dans CONFIGURATION
## Modification effectuée :

Le menu "Rappels" a été ajouté dans la section **CONFIGURATION** du menu de navigation.

**Position :** Après "Import Excel" et avant "Questionnaires"

**Chemin :** `/admin/rappels`

Ce menu permet d'accéder à la page de gestion des rappels automatiques où l'on peut créer, modifier et supprimer des rappels.

## Note
Le menu "Rappels" dans TRAÇABILITÉ (qui pointe vers `/admin/rappels/historique`) reste en place pour consulter l'historique des rappels envoyés.
2026-01-08 05:05:54 -05:00
Manus
f423eb003b Checkpoint: Création de la section TRAÇABILITÉ et réorganisation majeure des menus
## Modifications effectuées :

### Nouvelle section TRAÇABILITÉ
Création d'une nouvelle section "Traçabilité" regroupant les outils de suivi :
- Établissements
- Notifications
- Suivi Questionnaires
- Rappels (anciennement "Historique" sous Rappels)

### Section ANALYSES simplifiée
- Tableau de bord analytique
- Rapport Public Cible
- Statistiques des rappels (renommé depuis "Rappels")

### Section CONFIGURATION nettoyée
- Suppression du menu "Rappels" et de son sous-menu "Historique" (déplacé vers TRAÇABILITÉ)

Cette réorganisation améliore la clarté en séparant les outils de traçabilité/suivi des outils d'analyse statistique.
2026-01-07 10:58:09 -05:00
Manus
20598abe7b Checkpoint: Réorganisation et renommage des menus de navigation
## Modifications effectuées :
1. Renommage : "Attestations" → "Attestations de formation" pour plus de clarté
2. Déplacement : "Statistiques" (sous-menu de Rappels) → Section ANALYSES avec le nom "Rappels"
3. Simplification : Le menu "Rappels" dans CONFIGURATION ne contient plus que "Historique"

Cette réorganisation améliore la logique de navigation en plaçant tous les outils d'analyse dans la section ANALYSES.
2026-01-07 10:48:33 -05:00
Manus
b21fe28a75 Checkpoint: Réorganisation du menu de navigation : déplacement de Notifications
Le menu "Notifications" a été déplacé de la section CONFIGURATION vers la section ANALYSES pour une meilleure organisation logique, car les notifications sont davantage liées au suivi et à l'analyse qu'à la configuration du système.
2026-01-07 10:45:45 -05:00
Manus
023711df92 Checkpoint: Système d'attestations de formation implémenté
 Infrastructure backend :
- Tables attestations et configAttestation en base de données
- Service de génération PDF avec PDFKit (attestationService.ts)
- Génération automatique de PDF avec template personnalisable
- Upload automatique vers S3 avec URLs publiques
- Procédures tRPC pour générer, récupérer et configurer

 Interface utilisateur :
- Page de configuration des attestations (/admin/attestations)
- Personnalisation du texte avec variables dynamiques (nomComplet, nomFormation, dateDebut, dateFin)
- Configuration du signataire (nom et fonction)
- Bouton "Générer" dans la page de validation des présences formateur
- Génération automatique avec ouverture du PDF dans un nouvel onglet

 Fonctionnalités :
- Vérification des doublons (une seule attestation par apprenant/séquence)
- Génération uniquement pour les apprenants marqués comme présents
- PDF professionnel avec détails de la formation et dates
- Stockage permanent sur S3

📋 Améliorations futures possibles :
- Upload de logo et signature personnalisés
- Envoi automatique par email aux apprenants
- Espace apprenant pour télécharger les attestations
2026-01-07 10:06:29 -05:00
Manus
cc3badffa3 Rollback to 29b35fce 2026-01-07 09:23:52 -05:00
Manus
2eb352206f Checkpoint: Phase 1 : Système d'attestations de formation automatiques
 Infrastructure backend complète :
- Tables attestations et configAttestation en base de données
- Service de génération PDF (attestationService.ts) avec PDFKit
- Procédures tRPC pour générer, récupérer et configurer les attestations
- Stockage S3 des PDF générés

 Interface d'administration :
- Page de configuration des attestations (/admin/attestations)
- Personnalisation du texte avec variables dynamiques
- Champs pour signataire (nom et fonction)
- Placeholders pour logo et signature (à implémenter en phase 2)

📋 À faire en Phase 2 :
- Upload des images (logo/signature) vers S3
- Génération automatique après validation de présence
- Envoi automatique par email aux apprenants
- Espace apprenant pour télécharger les attestations
2026-01-07 06:35:12 -05:00
Manus Sandbox
5fcc98135c Checkpoint: Ajout de 3 améliorations pour le système de notifications :
1. Interface de gestion des emails formateurs (Configuration > Formateurs) - permet de gérer les adresses email des formateurs pour activer/désactiver les notifications
2. Tableau de bord des notifications (Configuration > Notifications) - historique complet des emails envoyés avec filtres et statistiques
3. Lien vers questionnaire de satisfaction automatiquement inclus dans l'email de remerciement post-formation
2025-12-15 15:27:30 -05:00
Manus Sandbox
8640c17b3b Checkpoint: Modification du comportement par défaut du menu accordéon : seule la section TABLEAU DE BORD est ouverte à l'ouverture, les sections GESTION, CONFIGURATION et ANALYSES sont fermées par défaut. Ajout d'un système de version (MENU_VERSION = 2) pour forcer la réinitialisation du localStorage avec les nouvelles valeurs par défaut. 2025-12-10 04:20:46 -05:00
Manus Sandbox
74d6b58326 Checkpoint: Correction du bug des accordéons qui s'ouvraient tous lors de la navigation. Implémentation de la persistance de l'état des sections dans localStorage pour mémoriser les préférences utilisateur entre les pages et les sessions. 2025-12-10 04:03:42 -05:00
Manus Sandbox
ebaa2a5fff Checkpoint: Ajout d'un système plier/déplier (accordéon) pour les catégories du menu de navigation. Les utilisateurs peuvent maintenant cliquer sur les titres de sections (TABLEAU DE BORD, GESTION, CONFIGURATION, ANALYSES) pour afficher ou masquer les items, rendant l'interface moins surchargée. Les icônes chevron indiquent l'état ouvert/fermé avec une animation de rotation. La section contenant la page active reste automatiquement ouverte. 2025-12-10 03:43:37 -05:00
Manus Sandbox
e484f45467 Checkpoint: Pages d'historique et statistiques des rappels accessibles
**Problème résolu** :
Les pages AdminRappelsHistorique et AdminRappelsStats étaient créées mais non accessibles car le menu de navigation ne gérait pas les sous-menus (subItems).

**Modifications apportées** :

1. **Gestion des sous-menus dans DashboardLayout.tsx**
   - Ajout de la logique pour détecter et afficher les sous-menus (subItems)
   - Détection automatique des sous-items actifs pour mettre en surbrillance le menu parent
   - Affichage des sous-menus avec indentation (ml-6) et taille réduite (h-9 text-sm)
   - Les sous-menus s'affichent automatiquement sous leur item parent

2. **Structure du menu**
   - Menu principal "Rappels" → `/admin/rappels` (configuration)
   - Sous-menu "Historique" → `/admin/rappels/historique`
   - Sous-menu "Statistiques" → `/admin/rappels/statistiques`

**Pages maintenant accessibles** :

1. **Page Historique des Rappels** (`/admin/rappels/historique`)
   - Filtres avancés : date début/fin, séquence, statut, email
   - Tableau complet avec colonnes : Date envoi, Email, Type, Statut, Tentatives, Erreur
   - Badge de statut coloré : vert pour succès, rouge pour échec
   - Pagination (50 résultats par page)
   - Affichage du nombre de résultats trouvés

2. **Page Statistiques des Rappels** (`/admin/rappels/statistiques`)
   - 4 cartes de statistiques : Total envoyés, Succès, Échecs, Taux de succès
   - Graphique "Évolution des envois" : ligne temporelle avec succès/échecs
   - Graphique "Taux de succès par jour" : barres de pourcentage
   - Section "Emails problématiques" : Top 10 des emails avec le plus d'échecs
   - Message "Aucun email problématique détecté" quand tout va bien

**Tests effectués** :
-  Navigation vers Historique fonctionne
-  Navigation vers Statistiques fonctionne
-  Affichage des données réelles (1 rappel J-7 envoyé avec succès)
-  Filtres et graphiques s'affichent correctement
-  Mise en surbrillance du menu actif

**Fichier modifié** :
- `client/src/components/DashboardLayout.tsx` : Ajout de la gestion des sous-menus
2025-12-08 15:01:48 -05:00
Manus Sandbox
355cb43dc7 Checkpoint: Historique, statistiques et réessai automatique des rappels
**Nouvelles fonctionnalités** :

1. **Page d'historique des rappels** (`/admin/rappels/historique`)
   - Tableau complet de tous les rappels envoyés
   - Filtres avancés : date début/fin, séquence, statut (succès/échec), email
   - Recherche par email avec mise en surbrillance
   - Pagination (50 résultats par page)
   - Affichage du nombre de tentatives pour chaque rappel
   - Code couleur : vert pour succès, rouge pour échec

2. **Tableau de bord statistiques** (`/admin/rappels/statistiques`)
   - 4 cartes de statistiques globales : total envoyés, succès, échecs, taux de succès
   - Graphique d'évolution : nombre de rappels envoyés par jour (succès vs échecs)
   - Graphique du taux de succès par jour (barres)
   - Top 10 des emails problématiques avec nombre d'échecs
   - Visualisation interactive avec Recharts

3. **Système de réessai automatique**
   - Détection automatique des rappels échoués
   - Délai exponentiel : 1h après 1er échec, 4h après 2ème, 24h après 3ème
   - Limite de 3 tentatives maximum
   - Notification automatique à l'admin en cas d'abandon (3 échecs)
   - Mise à jour automatique du statut dans les logs
   - Vérification toutes les heures

**Nouveaux champs dans logsRappels** :
- `nbTentatives` : nombre de tentatives d'envoi (1 à 3)
- `prochainEssai` : date du prochain essai en cas d'échec

**Nouveaux fichiers** :
- `client/src/pages/admin/AdminRappelsHistorique.tsx` : Page d'historique
- `client/src/pages/admin/AdminRappelsStats.tsx` : Page de statistiques
- `server/rappelRetry.ts` : Système de réessai automatique
- `server/rappelDb.ts` : Fonctions étendues (filtres, stats, évolution)

**Fichiers modifiés** :
- `drizzle/schema.ts` : Ajout de nbTentatives et prochainEssai
- `server/routers.ts` : Nouvelles procédures tRPC (historique, statistiques, évolution)
- `client/src/App.tsx` : Routes pour historique et statistiques
- `client/src/components/DashboardLayout.tsx` : Sous-menu Rappels
- `server/_core/index.ts` : Initialisation du scheduler de retry

**Bénéfices** :
-  Traçabilité complète de tous les rappels
-  Analyse des performances avec graphiques
-  Identification rapide des emails problématiques
-  Réessai automatique des échecs sans intervention manuelle
-  Notification en cas d'échec persistant
-  Optimisation de la délivrabilité des emails
2025-12-08 03:38:14 -05:00
Manus Sandbox
46b3f377d1 Checkpoint: Tableau de bord de suivi des questionnaires
 **Nouvelles fonctionnalités implémentées** :

**Backend complet** :
- Fichier questionnaireSuiviDb.ts avec 4 fonctions de statistiques
- getStatsByFormation() : Taux de réponse par formation
- getEvolutionTemporelle() : Évolution mensuelle des envois/réponses
- getStatsByFormateur() : Comparaison par formateur avec satisfaction moyenne
- getStatsGlobales() : Statistiques globales (questionnaires, envois, réponses, taux)
- Procédures tRPC complètes dans routers.ts

**Interface utilisateur** :
- Page AdminQuestionnaireSuivi avec graphiques interactifs (Recharts)
- 4 cartes de statistiques globales (questionnaires, envois, réponses, taux)
- Graphique en barres : Taux de réponse par formation
- Graphique en ligne : Évolution temporelle mensuelle
- Graphique camembert : Répartition des réponses par formation
- Graphique double axe : Comparaison formateurs (taux + satisfaction)
- Tableau détaillé des formateurs avec code couleur (vert >70%, orange >50%, rouge <50%)
- Lien "Suivi Questionnaires" ajouté dans le menu Analyses

Le tableau de bord offre une vue complète des performances des questionnaires pour optimiser le suivi et l'amélioration continue.
2025-12-07 16:03:24 -05:00
Manus Sandbox
cc8f634c16 Checkpoint: Système de questionnaires de satisfaction et d'évaluation - Complet et fonctionnel
 **Schéma de base de données** (Phase 1) :
- Table questionnaires (satisfaction, evaluation_pre, evaluation_post)
- Table questions (choix_multiple, echelle, texte_libre, oui_non)
- Table reponsesQuestionnaires
- Table reponsesQuestions
- Table envoisQuestionnaires

 **Backend complet** (Phase 2) :
- Fichier questionnaireDb.ts avec toutes les fonctions CRUD
- Procédures tRPC pour questionnaires (list, getById, create, update, delete, getStats, getReponsesDetaillees)
- Procédures tRPC pour questions (list, create, update, delete)
- Procédures tRPC publiques pour réponses (getByToken, submit)
- Fonctions de statistiques (taux de réponse, réponses détaillées)

 **Interfaces d'administration** (Phase 3) :
- AdminQuestionnaires : Liste et gestion des questionnaires
- AdminQuestionnaireEdit : Création/édition d'un questionnaire avec ses questions
- QuestionnaireReponse : Page publique pour répondre aux questionnaires
- Routes ajoutées dans App.tsx
- Lien "Questionnaires" ajouté dans le menu de navigation

 **Envoi automatique post-formation** (Phase 4) :
- Fichier questionnaireScheduler.ts
- Fonction processEnvoisAutomatiques() pour envoyer les questionnaires
- Génération de tokens uniques pour chaque envoi
- Emails personnalisés avec lien vers le questionnaire
- Procédure tRPC pour déclencher manuellement l'envoi
- Scheduler quotidien à 9h00

 **Tableaux de bord d'analyse** (Phase 5) :
- AdminQuestionnaireAnalyse : Page d'analyse avec graphiques
- Statistiques globales (envois, réponses, taux de réponse)
- Graphiques par question (barres, camemberts)
- Analyse des réponses numériques (moyennes, distributions)
- Affichage des réponses textuelles

🚧 **À faire** :
- Exports Excel/PDF des feedbacks
- Tests complets du système
- Déploiement sur le serveur VPS

Le système est maintenant pleinement fonctionnel et prêt à être testé !
2025-12-05 07:04:13 -05:00
Manus Sandbox
3647443898 Checkpoint: Corrections apportées :
1. Bug décalage horaire dans le formulaire d'édition des séquences
   - Correction de la fonction safeFormatDate pour utiliser les méthodes locales (getHours, getMinutes) au lieu des méthodes UTC
   - Les heures saisies (ex: 9h00) s'affichent maintenant correctement dans le formulaire d'édition

2. Ajout du menu de navigation sur la page Import Excel
   - Intégration du DashboardLayout wrapper dans AdminImportExcel.tsx
   - Le menu latéral s'affiche maintenant correctement sur cette page

3. Déplacement du menu "Import Excel"
   - Déplacé du bloc GESTION vers le bloc CONFIGURATION dans le menu de navigation
   - Positionné après "Utilisateurs" et avant "Rappels" pour une meilleure organisation
2025-11-27 05:39:37 -05:00
Manus Sandbox
f5dfb20e9a Checkpoint: Ajout de la fonctionnalité d'import Excel pour créer des formations et séquences en masse. Inclut le template Excel, la logique backend de parsing et validation, l'interface frontend avec prévisualisation, et la documentation utilisateur complète. 2025-11-25 05:49:13 -05:00
Manus Sandbox
7a737c0593 Checkpoint: Modification de la couleur des titres des zones du menu (TABLEAU DE BORD, GESTION, CONFIGURATION, ANALYSES) en bleu pour améliorer la visibilité et la cohérence visuelle 2025-11-23 18:07:40 -05:00
Manus Sandbox
b96c84d615 Checkpoint: Réorganisation du menu de navigation en 4 zones distinctes avec séparateurs visuels et titres de sections : Tableau de bord, Gestion (Formations, Séquences, Calendrier, Apprenants), Configuration (Utilisateurs, Rappels, Templates d'emails, Configuration SMTP), Analyses (Établissements, Tableau de bord analytique, Rapport public cible) 2025-11-23 18:05:00 -05:00
Manus Sandbox
a0049436cc Checkpoint: Ajout de badges Actif/Inactif dans la liste des apprenants et création d'une page dédiée aux établissements avec statistiques de participation 2025-11-23 17:28:12 -05:00
Manus Sandbox
64db3f1aa6 Checkpoint: Création d'un tableau de bord analytique avancé avec graphiques interactifs (Recharts). Affiche les statistiques globales, l'évolution temporelle des inscriptions par mois, le taux de remplissage des séquences, le top 10 des établissements participants et la répartition par fonction. Accessible via le menu "Tableau de bord analytique". 2025-11-23 16:25:22 -05:00
Manus Sandbox
92d5825ead Checkpoint: Correction de la redirection après déconnexion : l'utilisateur est maintenant redirigé vers la page de choix de connexion (/) après s'être déconnecté, au lieu de rester sur la même page. Cela permet de choisir à nouveau entre connexion Manus OAuth et connexion locale après chaque déconnexion. 2025-11-23 06:16:58 -05:00
Manus Sandbox
4ce36ebbb0 Checkpoint: Ajout des pages Calendrier et Rappels dans le menu de navigation
 **Corrections apportées**
- Routes /admin/calendrier et /admin/rappels ajoutées dans App.tsx
- Liens "Calendrier" et "Rappels" ajoutés dans le menu de navigation (DashboardLayout)
- Imports des icônes CalendarDays et Bell ajoutés
- Pages AdminCalendrier et AdminRappels maintenant accessibles depuis le menu

 **Fonctionnalités complètes disponibles**
1. Barre de progression colorée dans le tableau des séquences
2. Vue calendrier mensuel avec navigation
3. Système de rappels automatiques configurables
4. Gestion des formateurs avec autocomplétion
5. Public cible "Tous" ajouté
6. Formulaires réorganisés sans chevauchement
2025-11-19 11:25:18 -05:00
Manus Sandbox
2283e84b54 true message 2025-11-19 10:33:48 -05:00
Manus Sandbox
4bf589dde3 Checkpoint: Trois améliorations majeures pour la gestion des séquences :
 **1. Indicateur visuel de remplissage**
- Composant CapacityProgressBar avec barre de progression colorée
- Affichage "X / Y" avec pourcentage
- Couleurs automatiques : vert (<70%), orange (70-90%), rouge (>90%)
- Intégré dans la colonne capacité du tableau des séquences

 **2. Vue calendrier mensuel**
- Nouvelle page AdminCalendrier accessible depuis le menu
- Calendrier mensuel avec navigation (mois précédent/suivant, aujourd'hui)
- Affichage des séquences sur leurs dates respectives
- Dialog de détails au clic sur une séquence
- Vue complète avec toutes les informations (lieu, formateur, capacité, dates)

 **3. Système de rappels automatiques personnalisables**
- Tables rappels et rappelsEnvoyes créées
- Procédures tRPC complètes (list, create, update, delete)
- Page AdminRappels avec interface de gestion
- Configuration de rappels multiples (J-15, J-7, J-1, etc.)
- Templates d'emails personnalisables avec variables dynamiques
- Activation/désactivation des rappels
- Infrastructure prête pour l'envoi automatique (nécessite service de planification externe)

Ces améliorations facilitent grandement la planification et le suivi des formations.
2025-11-19 09:59:37 -05:00
Manus Sandbox
37e0f8da49 Rollback to 9d67724e 2025-11-19 08:41:10 -05:00
Manus Sandbox
5085159cf7 Rollback to 641200f3 2025-11-19 08:36:23 -05:00
Manus Sandbox
cc0bd97248 Checkpoint: Migration complète vers l'authentification locale avec email/mot de passe
 Modifications apportées :
- Remplacement de l'authentification OAuth Manus par un système local
- Ajout des champs email, password, emailVerified dans la table users
- Implémentation du hashage des mots de passe avec bcrypt
- Création des procédures auth.login et auth.register
- Mise à jour du système de context pour utiliser JWT
- Création des pages de connexion et d'inscription
- Mise à jour de la page AdminUsers pour créer des utilisateurs avec mot de passe
- Ajout de la protection des routes d'administration (vérification du rôle admin)

 Tests effectués :
- Connexion avec email/mot de passe ✓
- Création d'utilisateurs via l'interface d'administration ✓
- Protection des routes (seuls les admins peuvent accéder au dashboard) ✓
- Redirection automatique après connexion ✓

Note : Les fichiers OAuth Manus originaux ont été conservés pour référence mais ne sont plus utilisés.
2025-11-19 05:35:17 -05:00
Manus Sandbox
9d67724e83 Checkpoint: Ajout de l'interface de configuration SMTP avec Resend : formulaire de configuration (API key, email expéditeur, nom), basculement simulation/production, test d'envoi immédiat, stockage sécurisé en base de données, et guide de configuration intégré 2025-11-18 02:00:48 -05:00
Manus Sandbox
20dc80cd74 Checkpoint: Ajout d'une interface d'administration complète pour personnaliser les templates d'emails avec prévisualisation en temps réel, stockage en base de données et intégration avec le service d'envoi 2025-11-17 17:11:27 -05:00
Manus Sandbox
8cf6a9f6c3 Checkpoint: Ajout d'une fonctionnalité complète de gestion des utilisateurs : ajout du champ isActive dans le schéma users, création des procédures tRPC (list, update, toggleStatus, delete), développement de la page AdminUsers avec tableau, filtres (recherche, rôle, statut), formulaires de modification, activation/désactivation et suppression des comptes, intégration dans le menu de navigation avec l'icône UserCog 2025-11-17 15:57:51 -05:00
Manus Sandbox
6f5178b909 Checkpoint: Ajout des badges de couleur pour le public cible (bleu pour Directeurs, vert pour Chefs de service, gris pour Autre) dans les tableaux des séquences et création d'un rapport d'analyse comparant le public cible des séquences avec la fonction des apprenants inscrits pour identifier les écarts et optimiser la planification des formations 2025-11-17 08:44:49 -05:00
Manus Sandbox
5c9b6637c4 Checkpoint: Refonte majeure : transformation du système de sessions en séquences avec support de jusqu'à 4 dates par séquence. L'inscription à une séquence inscrit automatiquement l'apprenant à toutes les dates. Mise à jour complète du backend (schéma DB, procédures tRPC, emails, exports) et du frontend (AdminSequences, AdminSequenceInscrits, Inscription, Admin). Toutes les fonctionnalités existantes (filtres, statistiques, exports PDF/Excel, emails automatiques) sont préservées et adaptées au nouveau modèle. 2025-11-12 09:57:58 -05:00
Manus Sandbox
0fc35596d9 Checkpoint: Application complète de gestion des formations Manager Itinova avec toutes les fonctionnalités : gestion des formations/sessions/apprenants, système d'inscription avec validations, génération d'invitations Outlook, emails automatiques, exports PDF/Excel, et documentation complète. 2025-11-12 08:38:33 -05:00
Manus Sandbox
641200f3a4 Initial project bootstrap 2025-11-12 08:24:07 -05:00