Files
formation-manager-itinova/NOTES_VERSION.md

265 lines
8.2 KiB
Markdown

# 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/TiDB
- `JWT_SECRET` : Secret pour les tokens JWT
- `VITE_APP_TITLE` : Titre de l'application
- `VITE_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
```bash
# 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ée
- `update.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 à pas
- `CONFIGURATION.md` : Documentation des variables d'environnement
- `RELEASE_NOTES.md` : Notes de version détaillées
- `README.md` : Vue d'ensemble du projet
---
## 🎯 Prochaines Évolutions Suggérées
1. **Page Établissements** : Interface de gestion avec statistiques
2. **Tableau de bord formateurs** : Vue dédiée aux formateurs
3. **Notifications automatiques** : Rappels à J-7 et J-1
4. **Drag & drop calendrier** : Déplacer les séquences visuellement
5. **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**