# 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**
