265 lines
8.2 KiB
Markdown
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**
|