6.8 KiB
6.8 KiB
Guide d'Installation Rapide
Installation en 5 minutes
Ce guide vous permet d'installer et de démarrer l'application rapidement en environnement de développement.
Prérequis
Avant de commencer, assurez-vous d'avoir installé :
- Node.js 22+ : Télécharger Node.js
- MySQL 8.0+ ou MariaDB 10.6+ : Télécharger MySQL
- Git (optionnel) : Télécharger Git
Étape 1 : Récupérer le projet
Option A : Depuis l'archive ZIP
# Extraire l'archive
unzip formation-manager-itinova.zip
cd formation-manager-itinova
Option B : Depuis Git (si disponible)
# Cloner le dépôt
git clone <url-du-depot>
cd formation-manager-itinova
Étape 2 : Installer les dépendances
# Installer pnpm si nécessaire
npm install -g pnpm
# Installer les dépendances du projet
pnpm install
Étape 3 : Configurer la base de données
3.1 Créer la base de données
# Se connecter à MySQL
mysql -u root -p
# Créer la base de données
CREATE DATABASE formation_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Créer un utilisateur dédié (optionnel mais recommandé)
CREATE USER 'formation_user'@'localhost' IDENTIFIED BY 'votre_mot_de_passe_securise';
GRANT ALL PRIVILEGES ON formation_manager.* TO 'formation_user'@'localhost';
FLUSH PRIVILEGES;
# Quitter MySQL
EXIT;
3.2 Configurer les variables d'environnement
Créer un fichier .env à la racine du projet :
# Base de données
DATABASE_URL=mysql://formation_user:votre_mot_de_passe_securise@localhost:3306/formation_manager
# JWT Secret (générer une clé aléatoire)
JWT_SECRET=votre_cle_secrete_aleatoire_tres_longue_minimum_32_caracteres
# Application
VITE_APP_TITLE=Gestion des Formations Manager Itinova
VITE_APP_LOGO=/logo.svg
NODE_ENV=development
Note : Pour générer une clé JWT sécurisée, vous pouvez utiliser :
# Linux/Mac
openssl rand -base64 32
# Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
3.3 Initialiser la base de données
# Appliquer les migrations (créer les tables)
pnpm db:push
Étape 4 : Démarrer l'application
# Lancer le serveur de développement
pnpm dev
L'application sera accessible à l'adresse : http://localhost:3000
Étape 5 : Première connexion
Connexion avec l'utilisateur administrateur local
- Ouvrir http://localhost:3000 dans votre navigateur
- Cliquer sur "Se connecter localement"
- Utiliser les identifiants par défaut :
- Identifiant :
adminServFormation - Mot de passe :
Itinova69!
- Identifiant :
Important : Cet utilisateur est créé automatiquement au premier lancement et ne peut pas être supprimé.
Configuration initiale
Une fois connecté, vous pouvez :
1. Configurer l'envoi d'emails (optionnel)
- Créer un compte sur Resend
- Générer une clé API
- Dans l'application, aller dans Configuration SMTP
- Saisir :
- Clé API Resend : votre clé API
- Email expéditeur : votre email vérifié
- Nom de l'expéditeur : Itinova Formation
- Activer le mode Production
2. Créer des utilisateurs supplémentaires
- Aller dans Utilisateurs
- Cliquer sur Ajouter un utilisateur
- Remplir les informations :
- Nom d'utilisateur
- Mot de passe
- Rôle (admin ou user)
3. Créer vos premières formations
- Aller dans Formations
- Cliquer sur Nouvelle formation
- Remplir les informations de la formation
- Créer des séquences associées
4. Importer les apprenants
- Aller dans Apprenants
- Ajouter les apprenants un par un ou créer un script d'import
Commandes utiles
# Démarrer le serveur de développement
pnpm dev
# Builder pour la production
pnpm build
# Démarrer en mode production
pnpm start
# Appliquer les migrations
pnpm db:push
# Générer les migrations (après modification du schéma)
pnpm db:generate
# Ouvrir Drizzle Studio (interface graphique pour la base de données)
pnpm db:studio
Structure du projet
formation-manager-itinova/
├── client/ # Application frontend (React)
│ ├── public/ # Fichiers statiques
│ └── src/
│ ├── pages/ # Pages de l'application
│ ├── components/ # Composants réutilisables
│ └── lib/ # Bibliothèques et utilitaires
├── server/ # Application backend (Express + tRPC)
│ ├── routers.ts # Définition des routes API
│ ├── db.ts # Fonctions d'accès à la base de données
│ └── _core/ # Configuration du serveur
├── drizzle/ # Schéma et migrations de base de données
│ └── schema.ts # Définition des tables
├── shared/ # Code partagé entre client et serveur
├── .env # Variables d'environnement (à créer)
├── package.json # Dépendances du projet
├── deploy.sh # Script de déploiement automatique
├── DEPLOYMENT.md # Guide de déploiement complet
└── README.md # Documentation principale
Dépannage rapide
L'application ne démarre pas
Erreur : "Cannot find module"
# Réinstaller les dépendances
rm -rf node_modules
pnpm install
Erreur : "ECONNREFUSED" (connexion à la base de données)
# Vérifier que MySQL est démarré
sudo systemctl status mysql
# Vérifier l'URL de connexion dans .env
cat .env | grep DATABASE_URL
Les migrations échouent
# Vérifier que la base de données existe
mysql -u root -p -e "SHOW DATABASES;"
# Recréer la base de données si nécessaire
mysql -u root -p -e "DROP DATABASE IF EXISTS formation_manager; CREATE DATABASE formation_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# Réappliquer les migrations
pnpm db:push
Impossible de se connecter
Vérifier que JWT_SECRET est défini
cat .env | grep JWT_SECRET
Si vide, générer une nouvelle clé :
echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env
Prochaines étapes
Une fois l'installation terminée :
- Lire la documentation complète :
DEPLOYMENT.md - Personnaliser les templates d'emails : Menu "Templates d'emails"
- Configurer les rappels automatiques : Menu "Rappels"
- Tester l'envoi d'emails : Configuration SMTP
- Déployer en production : Suivre le guide
DEPLOYMENT.md
Support
Pour toute question ou problème :
- Consulter
DEPLOYMENT.mdpour la documentation complète - Vérifier les logs de l'application
- Contacter l'équipe de développement
Bon déploiement ! 🚀