8.2 KiB
8.2 KiB
Formation Manager Itinova - Notes de Version
Version actuelle : 9fffa8c7
Date : 25 novembre 2025
Statut : Production Ready
📋 Vue d'ensemble
Application complète de gestion des formations Manager Itinova avec système d'inscription en ligne, gestion administrative avancée, et automatisation des communications.
✨ Fonctionnalités Principales
🎓 Gestion des Formations
- Création et gestion des formations avec liens d'inscription uniques
- Configuration du public cible (Directeur, Chef de service, Tous, Autre)
- Suivi du statut et des descriptions détaillées
- Interface CRUD complète avec filtres et recherche
📅 Gestion des Séquences
- Support de jusqu'à 4 dates par séquence de formation
- Gestion des lieux, formateurs et capacité maximale (12 participants)
- Statuts : Ouverte, Bloquée, Terminée
- Blocage automatique des inscriptions à J-15
- Barre de progression colorée du taux de remplissage
- Filtres avancés (formation, lieu, statut, public cible)
- Badge coloré pour le public cible
📆 Vue Calendrier
- Vue mensuelle avec affichage des séquences par jour
- Vue hebdomadaire avec détails des séquences
- Vue journalière pour une vision détaillée
- Filtres par formation, lieu et public cible
- Export PDF du calendrier mensuel
- Export iCal pour partage avec formateurs (compatible Outlook/Google Calendar)
- Code couleur par public cible
- Navigation intuitive entre les périodes
👥 Gestion des Apprenants
- Fiche complète (nom, prénom, email, établissement, fonction)
- Fonction : Directeur, Chef de service, Autre
- Historique des inscriptions
- Filtres par établissement et fonction
- Import/export des données
📝 Système d'Inscription Publique
- Page d'inscription accessible via lien unique par formation
- Affichage des séquences disponibles avec places restantes
- Validation anti-double inscription
- Blocage automatique à J-15
- Liste d'attente si capacité maximale atteinte
- Alerte d'information si le public cible ne correspond pas à la fonction de l'apprenant
📧 Templates d'Emails Personnalisables
- Éditeur WYSIWYG pour personnaliser les templates
- Configuration du logo, couleurs primaire/secondaire
- Templates disponibles :
- Confirmation d'inscription
- Rappel à J-7
- Teaser pour chaque groupe
- Réinitialisation de mot de passe
- Prévisualisation en temps réel
- Variables dynamiques (nom, dates, lieu, etc.)
⚙️ Configuration SMTP
- Interface de configuration complète
- Support Resend API
- Mode simulation/production
- Test d'envoi immédiat avec feedback
- Validation de domaine
- Gestion sécurisée des clés API
📊 Exports et Rapports
- Export Excel des listes d'inscrits
- Export PDF des listes d'inscrits
- Feuilles de présence PDF (nom, prénom, établissement, fonction)
- Invitations Outlook (.ics) avec statut "occupé" et lieu
- Rapport d'analyse : Public cible vs Fonction des apprenants
- Tableau de bord analytique avec graphiques interactifs
👤 Gestion des Utilisateurs
- Rôles : Admin, Utilisateur
- Activation/désactivation des comptes
- Réinitialisation de mot de passe par email
- Filtres de recherche (nom, email, rôle, statut)
- Authentification locale (sans OAuth Manus)
🔔 Système de Rappels
- Configuration des rappels automatiques
- Déclenchement à J-7, J-1 ou dates personnalisées
- Envoi par email aux apprenants inscrits
- Gestion des templates de rappel
🏢 Analyses et Statistiques
- Tableau de bord avec indicateurs clés
- Répartition par fonction (graphique circulaire)
- Répartition par établissement (top 10)
- Rapport Public Cible : analyse des écarts entre public cible et fonction réelle
- Statistiques de remplissage des séquences
- Suivi des inscriptions en temps réel
🛠️ Technologies Utilisées
Frontend
- React 19 avec TypeScript
- Tailwind CSS 4 pour le styling
- shadcn/ui pour les composants
- Wouter pour le routing
- TanStack Query pour la gestion d'état
- Recharts pour les graphiques
- date-fns pour la gestion des dates
Backend
- Express 4 avec TypeScript
- tRPC 11 pour l'API type-safe
- Drizzle ORM pour la base de données
- MySQL/TiDB comme base de données
- Zod pour la validation
- Superjson pour la sérialisation
Services
- Resend pour l'envoi d'emails
- JWT pour l'authentification
- bcrypt pour le hachage des mots de passe
📦 Structure du Projet
formation-manager-itinova/
├── client/ # Application React frontend
│ ├── src/
│ │ ├── pages/ # Pages de l'application
│ │ ├── components/ # Composants réutilisables
│ │ ├── contexts/ # Contextes React
│ │ └── lib/ # Utilitaires et configuration
│ └── public/ # Assets statiques
├── server/ # Application Express backend
│ ├── routers.ts # Routes tRPC
│ ├── db.ts # Fonctions base de données
│ └── _core/ # Infrastructure
├── drizzle/ # Schéma et migrations DB
├── shared/ # Types et constantes partagés
└── deployment-package/ # Scripts de déploiement
🔧 Configuration Requise
Variables d'Environnement Système
DATABASE_URL: Connexion MySQL/TiDBJWT_SECRET: Secret pour les tokens JWTVITE_APP_TITLE: Titre de l'applicationVITE_APP_LOGO: URL du logo
Configuration SMTP (via interface)
- API Key Resend
- Email expéditeur vérifié
- Mode simulation/production
🚀 Déploiement
Prérequis
- Node.js 22.x
- MySQL 8.x ou TiDB
- Serveur avec Nginx (recommandé)
Installation
# 1. Extraire l'archive
tar -xzf formation-manager-backup-YYYYMMDD-HHMMSS.tar.gz
cd formation-manager-itinova
# 2. Installer les dépendances
pnpm install
# 3. Configurer les variables d'environnement
cp .env.example .env
# Éditer .env avec vos valeurs
# 4. Initialiser la base de données
pnpm db:push
# 5. Démarrer l'application
pnpm dev # Développement
pnpm build # Production
pnpm start # Serveur production
Scripts de Déploiement
deploy.sh: Installation complète automatiséeupdate.sh: Mise à jour rapide
📝 Dernières Corrections (Version 9fffa8c7)
Bug Corrigé : Public Cible "Tous"
- ✅ Ajout de "tous" dans l'enum publicCible du schéma
- ✅ Mise à jour des validations Zod
- ✅ Modification de la colonne en base de données
- ✅ Test réussi de création/modification avec "Tous"
Améliorations Calendrier (Version 625cbedf)
- ✅ Filtres dynamiques (formation, lieu, public cible)
- ✅ Vues multiples (mois, semaine, jour)
- ✅ Export PDF et iCal
- ✅ Navigation adaptative selon la vue
Correction Affichage (Version 14aa8c5f)
- ✅ Résolution de l'erreur React #31 au survol des vignettes
- ✅ Gestion robuste des types Date/string
- ✅ Clés React stables pour éviter les re-renders
🔐 Sécurité
- Authentification JWT avec tokens sécurisés
- Mots de passe hachés avec bcrypt
- Protection CSRF sur toutes les routes
- Validation des entrées avec Zod
- Gestion des rôles (admin/utilisateur)
- Tokens de réinitialisation avec expiration
📖 Documentation Complète
GUIDE_DEPLOIEMENT.md: Guide d'installation pas à pasCONFIGURATION.md: Documentation des variables d'environnementRELEASE_NOTES.md: Notes de version détailléesREADME.md: Vue d'ensemble du projet
🎯 Prochaines Évolutions Suggérées
- Page Établissements : Interface de gestion avec statistiques
- Tableau de bord formateurs : Vue dédiée aux formateurs
- Notifications automatiques : Rappels à J-7 et J-1
- Drag & drop calendrier : Déplacer les séquences visuellement
- Vue imprimable optimisée : PDF personnalisé avec logo et filtres
📞 Support
- Email : o.pareige@itinova.org
- Documentation : Consultez les fichiers PDF inclus
- Support Manus : https://help.manus.im
Développé avec ❤️ pour Itinova