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:
Manus
2026-02-02 14:18:46 -05:00
parent e8410230a9
commit f9983adada
81 changed files with 3734 additions and 27745 deletions

View File

@@ -0,0 +1,159 @@
#!/bin/bash
###############################################################################
# Script de configuration du fichier .env pour production
###############################################################################
set -e
# Couleurs
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ Configuration du fichier .env pour production ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
# Vérifier si .env existe déjà
if [ -f ".env" ]; then
echo -e "${YELLOW}[WARN]${NC} Le fichier .env existe déjà"
read -p "Voulez-vous le remplacer? (y/N) " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Configuration annulée"
exit 0
fi
# Sauvegarder l'ancien
cp .env .env.backup.$(date +%Y%m%d_%H%M%S)
echo -e "${GREEN}[OK]${NC} Ancien fichier sauvegardé"
fi
echo "Ce script va créer un fichier .env avec les paramètres minimaux requis."
echo ""
# Demander DATABASE_URL
echo "═══════════════════════════════════════════════════════════════"
echo " 1. Configuration de la base de données"
echo "═══════════════════════════════════════════════════════════════"
echo ""
read -p "Hôte MySQL (défaut: localhost): " DB_HOST
DB_HOST=${DB_HOST:-localhost}
read -p "Port MySQL (défaut: 3306): " DB_PORT
DB_PORT=${DB_PORT:-3306}
read -p "Nom de la base de données (défaut: formation_manager): " DB_NAME
DB_NAME=${DB_NAME:-formation_manager}
read -p "Utilisateur MySQL: " DB_USER
read -sp "Mot de passe MySQL: " DB_PASS
echo ""
DATABASE_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
echo ""
echo "═══════════════════════════════════════════════════════════════"
echo " 2. Génération du JWT_SECRET"
echo "═══════════════════════════════════════════════════════════════"
echo ""
JWT_SECRET=$(openssl rand -base64 32)
echo -e "${GREEN}[OK]${NC} JWT_SECRET généré: ${JWT_SECRET:0:20}..."
echo ""
echo "═══════════════════════════════════════════════════════════════"
echo " 3. Configuration de l'application"
echo "═══════════════════════════════════════════════════════════════"
echo ""
read -p "Port de l'application (défaut: 3000): " PORT
PORT=${PORT:-3000}
read -p "Titre de l'application (défaut: Gestion des Formations Manager Itinova): " APP_TITLE
APP_TITLE=${APP_TITLE:-Gestion des Formations Manager Itinova}
# Créer le fichier .env
cat > .env << EOF
# ============================================================================
# CONFIGURATION DE PRODUCTION - Formation Manager Itinova
# Généré le $(date)
# ============================================================================
# ----------------------------------------------------------------------------
# Base de données
# ----------------------------------------------------------------------------
DATABASE_URL=${DATABASE_URL}
# ----------------------------------------------------------------------------
# Sécurité - JWT
# ----------------------------------------------------------------------------
JWT_SECRET=${JWT_SECRET}
# ----------------------------------------------------------------------------
# Application
# ----------------------------------------------------------------------------
PORT=${PORT}
NODE_ENV=production
# Titre de l'application
VITE_APP_TITLE=${APP_TITLE}
# Logo de l'application
VITE_APP_LOGO=/logo-itinova.png
# ----------------------------------------------------------------------------
# OAuth Manus (configuration minimale pour éviter les erreurs)
# ----------------------------------------------------------------------------
VITE_APP_ID=formation-manager-itinova
OAUTH_SERVER_URL=https://api.manus.im
VITE_OAUTH_PORTAL_URL=https://portal.manus.im
OWNER_OPEN_ID=local-owner
OWNER_NAME=Administrateur
# ----------------------------------------------------------------------------
# SMTP - Configuration email (optionnel)
# ----------------------------------------------------------------------------
# Laissez vide si vous n'utilisez pas l'envoi d'emails
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
SMTP_FROM=
# ----------------------------------------------------------------------------
# Analytics (optionnel)
# ----------------------------------------------------------------------------
VITE_ANALYTICS_ENDPOINT=
VITE_ANALYTICS_WEBSITE_ID=
# ----------------------------------------------------------------------------
# API Forge Manus (optionnel)
# ----------------------------------------------------------------------------
BUILT_IN_FORGE_API_URL=
BUILT_IN_FORGE_API_KEY=
VITE_FRONTEND_FORGE_API_KEY=
VITE_FRONTEND_FORGE_API_URL=
EOF
echo ""
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║ Fichier .env créé avec succès! ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
echo "📄 Fichier créé: $(pwd)/.env"
echo ""
echo "⚠️ IMPORTANT:"
echo " 1. Le fichier .env contient des informations sensibles"
echo " 2. Ne le partagez jamais publiquement"
echo " 3. Assurez-vous qu'il n'est pas accessible via le web"
echo ""
echo "🔄 Prochaines étapes:"
echo " 1. Vérifiez la configuration: cat .env"
echo " 2. Appliquez les migrations: pnpm db:push"
echo " 3. Compilez l'application: pnpm build"
echo " 4. Redémarrez le service: sudo systemctl restart formation-manager"
echo ""