Files
formation-manager-itinova/NOTES_VERSION.md

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/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

# 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


Développé avec ❤️ pour Itinova