# Gestion des Formations Manager Itinova - TODO ## Phase 1 : Planification et initialisation - [x] Initialiser le projet avec architecture full-stack - [x] Créer le plan de développement - [x] Créer le fichier todo.md ## Phase 2 : Modèle de données - [x] Créer la table des formations (nom, description, lien unique) - [x] Créer la table des sessions (dates, lieu, capacité max 12, statut blocage J-15) - [x] Créer la table des inscriptions (apprenant, session, statut) - [x] Créer la table des apprenants (nom, prénom, email, code établissement) - [x] Implémenter les relations entre tables - [x] Ajouter les contraintes d'unicité pour éviter les doubles inscriptions ## Phase 3 : Interface d'administration - [x] Créer le dashboard administrateur avec navigation - [x] Créer l'interface de gestion des formations (CRUD) - [x] Créer l'interface de gestion des sessions (CRUD) - [x] Créer l'interface de gestion des apprenants (CRUD) - [x] Afficher les listes d'inscrits par session - [x] Implémenter la gestion des rôles (admin DRH, responsable, stagiaire) ## Phase 4 : Système d'inscription - [x] Créer la page d'inscription publique avec lien unique par formation - [x] Implémenter la validation de capacité maximale (12 participants) - [x] Implémenter la validation anti-double inscription - [x] Implémenter le blocage des inscriptions/désinscriptions à J-15 - [x] Créer le système de liste d'attente si session complète - [x] Afficher les sessions disponibles avec places restantes ## Phase 5 : Invitations et emails automatiques - [x] Implémenter la génération d'invitations Outlook (.ics) avec statut " occupé " - [x] Inclure le lieu de formation dans les invitations - [x] Créer le système d'envoi d'emails automatiques - [x] Créer le template email de confirmation d'inscription - [x] Créer le template email teaser pour chaque groupe - [x] Créer le template email de rappel à J-7 - [x] Implémenter l'envoi automatique des emails selon les événements ## Phase 6 : Exports - [x] Implémenter l'export Excel des listes d'inscrits par session - [x] Implémenter l'export PDF des listes d'inscrits par session - [x] Créer la génération de feuille de présence PDF (nom, prénom, code établissement) - [x] Ajouter les boutons d'export dans l'interface admin ## Phase 7 : Tests et documentation - [x] Tester le flux complet d'inscription - [x] Tester les validations et contraintes - [x] Tester la génération des invitations et emails - [x] Tester les exports PDF/Excel - [x] Créer la documentation utilisateur - [x] Créer la documentation d'administration ## P## Phase 8 : Livraison - [x] Vérifier toutes les fonctionnalités - [x] Créer un checkpoint final - [x] Présenter l'application à l'utilisateur ## Corrections à apporter - [x] Corriger la mise à jour de la liste des apprenants après inscription - [x] Implémenter l'envoi effectif des emails de confirmation ## Nouvelles fonctionnalités - [x] Ajouter des filtres de tri sur la page des sessions (date, lieu, places restantes) - [x] Ajouter des filtres de recherche sur la page des formations - [x] Ajouter des filtres de recherche sur la page des apprenants - [x] Ajouter des filtres complets sur la page de gestion des inscrits (recherche, statut, établissement, tri par date) - [x] Ajouter le champ "Fonction" (Directeur, Chef de service, Autre) dans la fiche apprenant - [x] Mettre à jour le schéma de base de données - [x] Mettre à jour les formulaires d'inscription et de gestion - [x] Ajouter la fonction dans les exports PDF/Excel ## Améliorations supplémentaires - [x] Ajouter un filtre par fonction sur la page des apprenants - [x] Ajouter un filtre par fonction sur la page des inscrits - [x] Créer des statistiques de répartition par fonction sur le tableau de bord - [x] Ajouter des graphiques de visualisation des données - [x] Personnaliser les templates d'emails avec la fonction de l'apprenant ## Refonte : Sessions → Séquences avec dates multiples - [x] Renommer "Session" en "Séquence" dans le schéma de base de données - [x] Créer une table pour gérer jusqu'à 4 dates par séquence - [x] Mettre à jour toutes les procédures tRPC pour utiliser "séquence" - [x] Renommer toutes les interfaces et pages (AdminSessions → AdminSequences) - [x] Adapter le formulaire de création/édition pour gérer 4 dates - [x] Mettre à jour la page d'inscription pour afficher toutes les dates d'une séquence - [x] Modifier la logique d'inscription pour inscrire à toutes les dates - [x] Mettre à jour les exports PDF/Excel avec toutes les dates - [x] Adapter les emails pour inclure toutes les dates de la séquence - [x] Mettre à jour les invitations Outlook pour créer 4 événements si nécessaire - [x] Renommer partout dans l'interface utilisateur (labels, titres, descriptions)