Checkpoint: Correction du bug d'émargement formateur bloqué sur la saisie d'email
- Ajout de la détection automatique formateur/apprenant dans EmargementScan.tsx - Nouvelle procédure tRPC getSequenceByToken pour récupérer les infos de séquence - Interface adaptée selon le type d'utilisateur (apprenant ou formateur) - Déploiement réussi sur le VPS de production Le système détecte maintenant automatiquement si l'email correspond à un apprenant ou un formateur, et affiche l'interface appropriée pour chaque cas.
This commit is contained in:
234
deployment-package/docs/INSTRUCTIONS-DEPLOIEMENT.md
Normal file
234
deployment-package/docs/INSTRUCTIONS-DEPLOIEMENT.md
Normal file
@@ -0,0 +1,234 @@
|
||||
# Instructions de déploiement - Formation Manager Itinova
|
||||
|
||||
Version: **d0d9d870**
|
||||
Date: 3 janvier 2025
|
||||
|
||||
## 📋 Résumé des modifications
|
||||
|
||||
Cette mise à jour contient les corrections suivantes :
|
||||
|
||||
1. **Bug d'inscription - Mauvais apprenant associé**
|
||||
- Création d'une procédure publique `apprenants.createPublic`
|
||||
- Les inscriptions depuis la page publique fonctionnent correctement
|
||||
|
||||
2. **Bug email de confirmation - Variables non remplacées**
|
||||
- Correction du template d'inscription dans la base de données
|
||||
- Ajout de la variable `{{datesHTML}}` dans l'objet variables
|
||||
- Toutes les variables sont maintenant correctement remplacées
|
||||
|
||||
3. **Amélioration de l'interface des templates d'emails**
|
||||
- Ajout du bouton `{{datesHTML}}` dans l'éditeur
|
||||
- Prévisualisation améliorée avec exemple de dates formatées
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Déploiement automatique (recommandé)
|
||||
|
||||
### Prérequis
|
||||
- Accès SSH au serveur VPS
|
||||
- Git configuré avec accès au dépôt
|
||||
- PM2 installé pour la gestion du processus
|
||||
- pnpm installé
|
||||
|
||||
### Étapes
|
||||
|
||||
1. **Se connecter au serveur VPS**
|
||||
```bash
|
||||
ssh votre-utilisateur@votre-serveur.com
|
||||
```
|
||||
|
||||
2. **Aller dans le répertoire du projet**
|
||||
```bash
|
||||
cd /chemin/vers/formation-manager-itinova
|
||||
```
|
||||
|
||||
3. **Rendre le script exécutable**
|
||||
```bash
|
||||
chmod +x deploy-update.sh
|
||||
```
|
||||
|
||||
4. **Exécuter le script de mise à jour**
|
||||
```bash
|
||||
./deploy-update.sh
|
||||
```
|
||||
|
||||
Le script va automatiquement :
|
||||
- ✅ Sauvegarder la base de données
|
||||
- ✅ Arrêter le serveur
|
||||
- ✅ Récupérer les dernières modifications
|
||||
- ✅ Installer les dépendances
|
||||
- ✅ Appliquer les migrations
|
||||
- ✅ Compiler le projet
|
||||
- ✅ Redémarrer le serveur
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Déploiement manuel
|
||||
|
||||
Si vous préférez effectuer la mise à jour manuellement :
|
||||
|
||||
### 1. Sauvegarde de la base de données
|
||||
|
||||
```bash
|
||||
# Créer un répertoire de backup
|
||||
mkdir -p backups
|
||||
|
||||
# Sauvegarder la base de données
|
||||
mysqldump -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE > backups/db-backup-$(date +%Y%m%d-%H%M%S).sql
|
||||
```
|
||||
|
||||
### 2. Arrêter le serveur
|
||||
|
||||
```bash
|
||||
pm2 stop formation-manager
|
||||
```
|
||||
|
||||
### 3. Récupérer les modifications
|
||||
|
||||
```bash
|
||||
git fetch origin
|
||||
git checkout main
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
### 4. Installer les dépendances
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
```
|
||||
|
||||
### 5. Appliquer les migrations de base de données
|
||||
|
||||
```bash
|
||||
pnpm db:push
|
||||
```
|
||||
|
||||
**OU** appliquer manuellement le script SQL :
|
||||
|
||||
```bash
|
||||
mysql -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE < update-database.sql
|
||||
```
|
||||
|
||||
### 6. Compiler le projet
|
||||
|
||||
```bash
|
||||
pnpm build
|
||||
```
|
||||
|
||||
### 7. Redémarrer le serveur
|
||||
|
||||
```bash
|
||||
pm2 restart formation-manager
|
||||
# OU si c'est le premier démarrage :
|
||||
pm2 start npm --name "formation-manager" -- start
|
||||
```
|
||||
|
||||
### 8. Vérifier le statut
|
||||
|
||||
```bash
|
||||
pm2 status formation-manager
|
||||
pm2 logs formation-manager --lines 50
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Tests après déploiement
|
||||
|
||||
Après le déploiement, vérifiez que tout fonctionne correctement :
|
||||
|
||||
### 1. Test d'inscription publique
|
||||
- [ ] Aller sur la page d'inscription publique d'une formation
|
||||
- [ ] Créer une nouvelle inscription avec un nouvel apprenant
|
||||
- [ ] Vérifier que l'apprenant est correctement créé dans la base de données
|
||||
- [ ] Vérifier que l'inscription est associée au bon apprenant
|
||||
|
||||
### 2. Test de l'email de confirmation
|
||||
- [ ] Effectuer une inscription
|
||||
- [ ] Vérifier la réception de l'email de confirmation
|
||||
- [ ] Vérifier que toutes les variables sont remplacées (notamment `{{prenomApprenant}}` et `{{datesHTML}}`)
|
||||
- [ ] Vérifier que les invitations ICS sont jointes (une par date)
|
||||
|
||||
### 3. Test de l'interface des templates
|
||||
- [ ] Aller dans Configuration > Templates d'emails
|
||||
- [ ] Vérifier que le bouton "Dates (HTML)" est présent
|
||||
- [ ] Cliquer sur le bouton pour insérer `{{datesHTML}}`
|
||||
- [ ] Vérifier la prévisualisation
|
||||
|
||||
---
|
||||
|
||||
## 📊 Vérification de la base de données
|
||||
|
||||
Pour vérifier que la mise à jour du template d'inscription a été appliquée :
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
type,
|
||||
name,
|
||||
bodyContent,
|
||||
updatedAt
|
||||
FROM emailTemplates
|
||||
WHERE type = 'inscription';
|
||||
```
|
||||
|
||||
Le `bodyContent` doit contenir les variables `{{prenomApprenant}}`, `{{nomApprenant}}`, et `{{datesHTML}}`.
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Rollback (en cas de problème)
|
||||
|
||||
Si vous rencontrez des problèmes après la mise à jour :
|
||||
|
||||
### 1. Restaurer la base de données
|
||||
|
||||
```bash
|
||||
# Lister les sauvegardes disponibles
|
||||
ls -lh backups/
|
||||
|
||||
# Restaurer une sauvegarde
|
||||
mysql -h VOTRE_HOST -u VOTRE_USER -p VOTRE_DATABASE < backups/db-backup-YYYYMMDD-HHMMSS.sql
|
||||
```
|
||||
|
||||
### 2. Revenir à la version précédente du code
|
||||
|
||||
```bash
|
||||
# Voir l'historique des commits
|
||||
git log --oneline
|
||||
|
||||
# Revenir au commit précédent
|
||||
git checkout COMMIT_HASH
|
||||
|
||||
# Réinstaller les dépendances
|
||||
pnpm install
|
||||
|
||||
# Recompiler
|
||||
pnpm build
|
||||
|
||||
# Redémarrer
|
||||
pm2 restart formation-manager
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
En cas de problème lors du déploiement :
|
||||
|
||||
1. Consulter les logs du serveur : `pm2 logs formation-manager`
|
||||
2. Vérifier l'état du serveur : `pm2 status`
|
||||
3. Vérifier les logs de la base de données
|
||||
4. Contacter le support technique
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notes importantes
|
||||
|
||||
- **Sauvegarde automatique** : Le script `deploy-update.sh` crée automatiquement une sauvegarde de la base de données avant toute modification
|
||||
- **Temps d'arrêt** : Le déploiement nécessite un arrêt temporaire du serveur (environ 2-3 minutes)
|
||||
- **Variables d'environnement** : Assurez-vous que toutes les variables d'environnement nécessaires sont correctement configurées (DATABASE_URL, RESEND_API_KEY, etc.)
|
||||
- **Permissions** : Le script doit être exécuté avec les permissions appropriées pour accéder à la base de données et redémarrer PM2
|
||||
|
||||
---
|
||||
|
||||
**Version du checkpoint** : d0d9d870
|
||||
**Date de création** : 3 janvier 2025
|
||||
**Auteur** : Manus AI
|
||||
Reference in New Issue
Block a user