# 🚀 Guide de Déploiement - Milieu Inconnu Windows 10

## 📋 Vue d'ensemble

Ce guide vous aide à déployer Class Generator sur **n'importe quel Windows 10**, même avec des restrictions de sécurité.

---

## ⚡ Démarrage Rapide (3 étapes)

### 1️⃣ Vérifier le système
```batch
Double-cliquer sur: DIAGNOSTIC.bat
```
- ✅ Tout vert ? Passez à l'étape 2
- ⚠️ Warnings ? Continuez quand même
- ❌ Erreurs ? Lisez les solutions ci-dessous

### 2️⃣ Démarrer l'application
```batch
Double-cliquer sur: START_PORTABLE_SAFE.bat
```
- Attendez "SUCCESS! Server is running"
- Le navigateur s'ouvre automatiquement
- Laissez la fenêtre ouverte

### 3️⃣ Utiliser l'application
- Naviguez sur http://localhost:8080
- Appuyez sur n'importe quelle touche dans la console pour arrêter

---

## 🛠️ Résolution de Problèmes

### Problème 1: "Node.js won't run"

**Causes possibles:**
- ❌ Antivirus bloque node.exe
- ❌ Droits d'administrateur requis
- ❌ Visual C++ Runtime manquant

**Solutions (par ordre de priorité):**

```
Solution A: Débloquer l'antivirus
1. Ouvrir Windows Security
2. Protection contre virus et menaces
3. Gérer les paramètres
4. Exclusions → Ajouter une exclusion
5. Dossier → Sélectionner le dossier Class_generator complet
6. Redémarrer DIAGNOSTIC.bat
```

```
Solution B: Lancer en administrateur
1. Clic droit sur START_PORTABLE_SAFE.bat
2. "Exécuter en tant qu'administrateur"
3. Accepter l'UAC
```

```
Solution C: Installer Visual C++ Redistributable
1. Télécharger: https://aka.ms/vs/17/release/vc_redist.x64.exe
2. Installer
3. Redémarrer l'ordinateur
4. Relancer DIAGNOSTIC.bat
```

---

### Problème 2: "Port 8080 used by another program"

**Identifier le coupable:**
```batch
netstat -ano | findstr :8080
```

**Solutions:**

```
Solution A: Tuer le processus
1. Copier le PID affiché (dernière colonne)
2. Ouvrir Gestionnaire des tâches
3. Onglet "Détails"
4. Trouver le PID et terminer le processus
```

```
Solution B: Changer le port
1. Ouvrir server.js avec Notepad
2. Chercher: const PORT = 8080
3. Changer en: const PORT = 8081
4. Sauvegarder
5. Relancer START_PORTABLE_SAFE.bat
```

---

### Problème 3: "Dependencies installation failed"

**Causes possibles:**
- ❌ Pas d'internet
- ❌ Firewall/Proxy bloque npm
- ❌ Espace disque plein

**Solutions:**

```
Solution A: Déployer avec node_modules pré-installés
1. Sur votre machine de dev:
   npm install
2. Copier TOUT le dossier (incluant node_modules/)
3. Sur la machine cible: skip étape d'installation
```

```
Solution B: Installation manuelle
1. Vérifier la connexion internet
2. Ouvrir cmd en administrateur
3. cd C:\chemin\vers\Class_generator
4. nodejs-portable\node.exe nodejs-portable\node_modules\npm\bin\npm-cli.js install
5. Observer les erreurs détaillées
```

---

### Problème 4: "Browser doesn't open" ou "Wrong browser opens"

**⚠️ CRITIQUE: Votre environnement nécessite Firefox UNIQUEMENT**
- ❌ Edge ne fonctionne PAS
- ❌ Chrome ne fonctionne PAS
- ✅ Firefox REQUIS

**Solutions:**

```
Solution A: Vérifier que Firefox est installé
1. Chercher dans Menu Démarrer: "Firefox"
2. Si absent → Demander à l'IT d'installer Firefox
3. Ou télécharger Firefox Portable si droits limités

Solution B: Ouvrir manuellement
1. Laisser le serveur tourner (ne pas fermer la fenêtre)
2. Ouvrir FIREFOX (PAS Edge, PAS Chrome)
3. Aller sur: http://localhost:8080

Solution C: Firefox dans un chemin non-standard
1. Noter où Firefox est installé
2. Le script cherche dans:
   - C:\Program Files\Mozilla Firefox\
   - C:\Program Files (x86)\Mozilla Firefox\
   - PATH système
3. Si ailleurs, ouvrir manuellement (Solution B)
```

---

### Problème 5: "Server started but page doesn't load"

**Diagnostic:**

```batch
1. Ouvrir logs\server.log
2. Chercher les erreurs
```

**Erreurs courantes:**

```
ERREUR: "EADDRINUSE"
→ Le port est déjà pris, voir Problème 2

ERREUR: "MODULE_NOT_FOUND"
→ Dependencies manquantes, voir Problème 3

ERREUR: "Permission denied"
→ Lancer en administrateur, voir Problème 1 / Solution B
```

---

## 🎯 Checklist Pré-Déploiement

Avant de partir en milieu inconnu, **sur votre machine de dev** :

### Option A: Déploiement Léger (50 MB)
```
✅ nodejs-portable/ complet
✅ Tous les scripts .bat
✅ package.json
✅ src/, games/, styles/
✅ server.js, index.html
❌ node_modules/ (sera installé sur place)
```

### Option B: Déploiement Complet (150 MB)
```
✅ TOUT le dossier incluant node_modules/
→ Plus gros mais zéro dépendance internet
```

**Recommandation:** Option B pour milieu inconnu

---

## 📦 Package de Déploiement Recommandé

Créer un ZIP avec:
```
Class_generator/
├── START_PORTABLE_SAFE.bat    ← Script principal
├── DIAGNOSTIC.bat              ← Vérification système
├── DEPLOYMENT_GUIDE.md         ← Ce fichier
├── nodejs-portable/            ← Node.js complet
├── node_modules/               ← (Optionnel mais recommandé)
├── src/
├── games/
├── styles/
├── server.js
├── index.html
└── package.json
```

---

## 🔒 Environnements Restrictifs

### Entreprise / École avec restrictions

**Stratégies:**

1. **Demander une exception IT**
   - Fournir DIAGNOSTIC_REPORT.txt
   - Expliquer: application locale, pas d'internet requis
   - Montrer que c'est éducatif

2. **Mode super portable**
   - Utiliser une clé USB
   - Lancer depuis la clé (pas d'installation)
   - Tout est contenu, rien sur le système

3. **Fallback ultime: Python SimpleHTTPServer**
   ```batch
   python -m http.server 8080
   ```
   (Si Python est autorisé mais pas Node.js)

---

## 🧪 Test Rapide en 30 Secondes

Sur la machine cible:

```batch
1. Double-clic DIAGNOSTIC.bat
   ⏱️ Attendre le résultat (10 sec)

2. Si OK → Double-clic START_PORTABLE_SAFE.bat
   ⏱️ Attendre "SUCCESS" (15 sec)

3. Navigateur s'ouvre automatiquement
   ⏱️ Page charge (5 sec)

✅ Total: ~30 secondes si tout va bien
```

---

## 📞 Support d'Urgence

Si rien ne marche:

1. **Capturer les logs**
   - DIAGNOSTIC_REPORT.txt
   - logs\server.log
   - Screenshot des erreurs

2. **Informations système**
   ```batch
   systeminfo > system_info.txt
   ```

3. **Envoyer à l'IT/développeur**

---

## ✅ Vérification Finale

Avant de dire "c'est bon":

```
✅ DIAGNOSTIC.bat → Tout vert ou warnings acceptables
✅ START_PORTABLE_SAFE.bat → "SUCCESS! Server is running"
✅ http://localhost:8080 → Page charge
✅ Tester une fonctionnalité → Ça marche
✅ Arrêter (touche dans console) → Propre
✅ Redémarrer → Ça remarche
```

---

## 🎓 Notes pour l'Utilisateur Final

```
Ce logiciel fonctionne LOCALEMENT sur votre ordinateur.
Il ne se connecte PAS à internet.
Vos données restent sur votre machine.
Aucune installation système requise.
Tout est dans ce dossier.

⚠️ IMPORTANT: Utilisez UNIQUEMENT Mozilla Firefox
   Edge et Chrome ne sont PAS compatibles avec ce système.
```

---

## 🦊 Firefox Portable (Plan de Secours)

Si Firefox n'est pas installé et que vous n'avez pas les droits d'installer :

```
1. Télécharger Firefox Portable depuis:
   https://portableapps.com/apps/internet/firefox_portable

2. Extraire dans un dossier (ex: Desktop/FirefoxPortable/)

3. Lancer FirefoxPortable.exe

4. Aller sur: http://localhost:8080
```

---

**Version:** 1.1
**Testé sur:** Windows 10 (build 19041+)
**Navigateur:** Firefox uniquement
**Dernière mise à jour:** 2025-10-18
