6.6 KiB
6.6 KiB
Gestion des Formations Manager Itinova - TODO
[... contenu existant conservé ...]
Questionnaires de satisfaction et évaluation des acquis
- Créer le schéma de base de données (tables questionnaires, questions, réponses)
- Développer les procédures backend tRPC pour la gestion des questionnaires
- Créer l'interface d'administration des questionnaires
- Créer l'interface publique de réponse aux questionnaires
- Implémenter l'envoi automatique post-formation
- Créer les tableaux de bord d'analyse avec graphiques (satisfaction par formation/formateur)
- Implémenter les exports Excel/PDF des feedbacks
- Tester le système complet (création, envoi, réponse, analyse)
- Déployer sur le serveur VPS
Amélioration : Prévisualisation des questionnaires
- Ajouter un bouton "Prévisualiser" dans la page d'édition de questionnaire
- Créer un modal de prévisualisation avec le rendu exact du questionnaire
Exports et notifications pour les questionnaires
- Créer les fonctions backend d'export Excel des résultats
- Créer les fonctions backend d'export PDF des résultats
- Ajouter les boutons d'export dans la page d'analyse
- Implémenter le système de notifications pour les administrateurs
- Envoyer une notification lors de chaque nouvelle réponse à un questionnaire
Tableau de bord de suivi des questionnaires
- Créer les fonctions backend pour les statistiques par formation
- Créer les fonctions backend pour l'évolution temporelle
- Créer les fonctions backend pour la comparaison par formateur
- Créer les procédures tRPC pour le tableau de bord
- Créer la page AdminQuestionnaireSuivi avec graphiques
- Ajouter le lien dans le menu de navigation
- Tester toutes les fonctionnalités
Correction des erreurs SQL du tableau de bord de suivi
- Corriger la requête getEvolutionTemporelle (DATE_FORMAT)
- Corriger la requête getStatsByFormateur (sous-requête AVG)
- Simplifier les requêtes pour compatibilité MySQL
- Tester toutes les requêtes corrigées
Espace Formateur
Schéma de base de données
- Créer la table supportsFormation pour stocker les documents
- Ajouter les relations avec sequences
- Migrer le schéma avec pnpm db:push
Backend
- Créer formateurDb.ts avec les fonctions de requête
- Ajouter les procédures tRPC pour le calendrier du formateur
- Ajouter les procédures tRPC pour la liste des apprenants
- Ajouter les procédures tRPC pour l'upload de supports
- Ajouter les procédures tRPC pour la validation des présences
- Ajouter les procédures tRPC pour l'historique
Frontend
- Créer la page FormateurDashboard (calendrier)
- Créer la page FormateurSequence (détail séquence avec apprenants)
- Créer la page FormateurSupports (gestion des supports)
- Créer la page FormateurPresences (validation présences)
- Créer la page FormateurHistorique (historique formations)
- Ajouter les routes dans App.tsx
- Ajouter le menu de navigation formateur
Tests
- Tester toutes les fonctionnalités de l'espace formateur
Correction bug rappels multiples
- Analyser le code du scheduler de rappels
- Identifier pourquoi plusieurs emails sont envoyés
- Corriger la logique pour envoyer un seul email par séquence
- Tester avec la formation JetSki du 15/12/2025
Améliorations système de rappels
Historique des rappels
- Créer la table logsRappels dans le schéma
- Migrer le schéma avec pnpm db:push
- Créer les fonctions de log dans rappelDb.ts
- Intégrer le logging dans rappelScheduler.ts
- Ajouter la vérification des doublons avant envoi
Test manuel des rappels
- Créer la procédure tRPC pour tester un rappel
- Ajouter le bouton de test dans AdminRappels.tsx (optionnel)
- Implémenter la logique de test sans modifier les logs (optionnel)
Notifications d'échec
- Créer la fonction de notification admin
- Intégrer les notifications dans le catch des erreurs d'envoi
- Ajouter un résumé des échecs dans les logs
Historique et statistiques des rappels
Backend
- Créer les fonctions de récupération des logs avec filtres
- Créer les fonctions de statistiques (taux succès, emails problématiques)
- Ajouter les procédures tRPC pour l'historique
- Ajouter les procédures tRPC pour les statistiques
Page d'historique
- Créer AdminRappelsHistorique.tsx avec tableau des logs
- Ajouter les filtres (date, séquence, statut, email)
- Ajouter la recherche par email
- Ajouter la pagination
- Ajouter la route dans App.tsx
Tableau de bord statistiques
- Créer AdminRappelsStats.tsx avec cartes de statistiques
- Ajouter le graphique d'évolution des envois
- Ajouter le graphique du taux de succès
- Ajouter la liste des emails problématiques
- Ajouter la route dans App.tsx
Système de réessai automatique
- Ajouter le champ nbTentatives dans logsRappels
- Ajouter le champ prochainEssai dans logsRappels
- Créer la fonction de retry avec délai exponentiel
- Intégrer le retry dans rappelScheduler
- Limiter à 3 tentatives maximum
Correction erreurs tRPC (HTML au lieu de JSON)
- Analyser les logs du serveur pour identifier les requêtes qui échouent
- Identifier les procédures tRPC qui causent les erreurs
- Corriger les erreurs côté serveur (emailBody, reduce)
- Tester la page admin pour vérifier que les erreurs sont résolues
Rendre accessibles les pages d'historique et statistiques des rappels
- Vérifier que les routes sont bien définies dans App.tsx
- Vérifier que les liens sont bien dans le menu DashboardLayout
- Ajouter la gestion des sous-menus dans DashboardLayout
- Tester l'accès aux pages /admin/rappels/historique et /admin/rappels/statistiques
Système plier/déplier pour le menu de navigation
- Ajouter un état pour gérer les sections ouvertes/fermées
- Ajouter des icônes chevron pour indiquer l'état
- Implémenter la logique de toggle pour chaque section
- Garder la section active automatiquement ouverte
- Tester le comportement sur toutes les sections
Correction bug accordéons qui s'ouvrent tous
- Corriger le useEffect pour n'ouvrir que la section contenant l'item actif
- Supprimer le useEffect problématique (toutes sections ouvertes par défaut)
- Utiliser localStorage pour persister l'état des sections
- Tester le comportement en cliquant sur différents items