# 🚀 Guide de lancement CESIZen — web, API, mobile & dĂ©mo > Tout se lance en **une commande** pour la partie web/API (Docker). Le mobile se lance Ă  part (Expo). --- ## 0. PrĂ©requis (Ă  vĂ©rifier une fois) - **Docker Desktop** installĂ© et **lancĂ©** (l'icĂŽne baleine doit ĂȘtre active dans la barre de menu). - Pour le mobile uniquement : **Node.js** (dĂ©jĂ  installĂ© : v22) et l'app **Expo Go** sur ton tĂ©lĂ©phone (App Store / Play Store). - Se placer dans le dossier du projet : ```bash cd ~/Desktop/CESI/Cesizen ``` --- ## 1. 🌐 Lancer le site web + l'API + la base (Docker) Une seule commande construit et dĂ©marre **tout** (PostgreSQL + Redis + API Laravel + front Next.js), applique les migrations et le seed (dont le compte de dĂ©mo) : ```bash docker compose up -d ``` - `-d` = en arriĂšre-plan (tu rĂ©cupĂšres ton terminal). - Le **premier** lancement build les images (quelques minutes). Les suivants dĂ©marrent en ~20 s. **VĂ©rifier que c'est prĂȘt :** ```bash docker compose ps # les 4 services doivent ĂȘtre "Up" / "healthy" ``` **Adresses une fois lancĂ© :** | Service | URL | |---|---| | đŸ–„ïž Site web | **http://localhost:3000** | | 🔌 API (REST JSON) | http://localhost:8000/api/v1 | | đŸ—„ïž PostgreSQL | localhost:5432 (db `cesizen` / user `cesizen`) | âžĄïž Ouvre **http://localhost:3000** dans ton navigateur. --- ## 2. 🔑 Comptes de dĂ©monstration (dĂ©jĂ  créés par le seed) | RĂŽle | Email | Mot de passe | Pour montrer
 | |---|---|---|---| | **Membre** (dĂ©mo) | `demo@cesizen.fr` | `Demo123!` | Le **Tracker** : journal dĂ©jĂ  rempli (18 saisies) + rapports parlants | | **Admin** | `admin@cesizen.fr` | `Admin123!` | Le **back-office** : gestion users / contenus / Ă©motions | > 💡 Pour la dĂ©mo de soutenance, connecte-toi avec **`demo@cesizen.fr`** : son journal et ses rapports sont dĂ©jĂ  fournis (camembert + courbe), pas besoin de saisir en direct. --- ## 3. 🎬 Le parcours de dĂ©mo (≈ 4 min, sur le web) ConnectĂ© en `demo@cesizen.fr`, dĂ©roule dans cet ordre : 1. **Informations** (accessible mĂȘme sans compte) → *« voici le module Informations »* 2. **Journal de bord** → l'historique des saisies (dĂ©jĂ  rempli) 3. **Nouvelle saisie** → wizard **3 Ă©tapes** : Ă©motion → sous-Ă©motion + intensitĂ© (slider) → date + note → **Valider** (elle apparaĂźt dans le journal) 4. **Rapports** → changer la pĂ©riode (Semaine / Mois / 
) → **camembert** de rĂ©partition + **courbe** d'Ă©volution 5. *(option)* ConnectĂ© en **admin**, montrer la **configuration des Ă©motions** 🛟 **Si la dĂ©mo plante** : bascule sur les **maquettes des slides** (slide 9), sans t'excuser. --- ## 4. đŸ“± Lancer l'application mobile (Expo) > La partie Docker (API) doit **dĂ©jĂ  tourner** (Ă©tape 1), car l'app mobile interroge l'API. ```bash cd ~/Desktop/CESI/Cesizen/mobile npm install # la premiĂšre fois seulement npx expo start # dĂ©marre le serveur Expo + affiche un QR code ``` Ensuite, **3 façons** de voir l'app : ### a) Sur ton tĂ©lĂ©phone (le plus simple pour une dĂ©mo) 1. TĂ©lĂ©phone et Mac sur le **mĂȘme WiFi**. 2. L'app doit pointer vers l'API via l'**IP locale du Mac** (pas `localhost`, qui dĂ©signe le tĂ©lĂ©phone). Lance plutĂŽt : ```bash EXPO_PUBLIC_API_URL=http://192.168.1.127:8000/api/v1 npx expo start ``` *(192.168.1.127 = IP actuelle de ton Mac. Si elle change, retrouve-la avec `ipconfig getifaddr en0`.)* 3. Ouvre **Expo Go** sur le tĂ©lĂ©phone → scanne le **QR code** affichĂ© dans le terminal. ### b) Sur simulateur iOS (Mac avec Xcode) - Dans le terminal Expo, appuie sur **`i`** → l'app s'ouvre dans le simulateur. (Ici `localhost` fonctionne tel quel.) ### c) Sur Ă©mulateur Android (Android Studio) - Appuie sur **`a`**. (L'app utilise automatiquement `10.0.2.2` pour joindre l'API du Mac.) > Pour la soutenance, le plus fiable est de **montrer le web** (projetĂ©) et d'**Ă©voquer le mobile** avec 1-2 Ă©crans (tĂ©lĂ©phone ou simulateur). Une double dĂ©mo live = double risque. --- ## 5. âč ArrĂȘter / relancer ```bash docker compose down # arrĂȘte tout (les donnĂ©es de dĂ©mo sont CONSERVÉES) docker compose up -d # relance (le compte dĂ©mo + les 18 saisies reviennent) ``` - ⚠ **Ne jamais** faire `docker compose down -v` : le `-v` **efface** la base (tu perdrais les donnĂ©es de dĂ©mo). Sans `-v`, tout est conservĂ© dans le volume. - Mobile : `Ctrl + C` dans le terminal Expo pour l'arrĂȘter. --- ## 6. đŸ§Ș Lancer les tests (si on te le demande) ```bash # API (Laravel) — 15 tests docker compose exec backend php artisan test # ou en local : cd backend && php artisan test # Web (Next.js) — 6 tests cd frontend && npm test # Mobile (Expo) — 4 tests cd mobile && npm test ``` --- ## 7. 🆘 DĂ©pannage rapide | ProblĂšme | Solution | |---|---| | `Cannot connect to the Docker daemon` | Docker Desktop n'est pas lancĂ© → ouvre-le, attends que la baleine soit active. | | Port `3000`/`8000` dĂ©jĂ  utilisĂ© | Une appli occupe le port. Ferme-la, ou : `lsof -nP -iTCP:3000 -sTCP:LISTEN` pour l'identifier. | | Le site charge mais « erreur rĂ©seau » | L'API n'est pas prĂȘte → `docker compose ps` (backend doit ĂȘtre Up) ; relance `docker compose up -d`. | | Le mobile n'atteint pas l'API | Mauvaise URL → utilise `EXPO_PUBLIC_API_URL=http://:8000/api/v1` (Ă©tape 4a). | | Repartir d'une base propre | `docker compose down -v && docker compose up -d` (⚠ efface puis recrĂ©e tout, dĂ©mo comprise). | --- ### ✅ Checklist « 5 min avant l'oral » - [ ] Docker Desktop lancĂ© - [ ] `docker compose up -d` exĂ©cutĂ© · `docker compose ps` = tout **Up** - [ ] Navigateur ouvert sur **http://localhost:3000**, **dĂ©jĂ  connectĂ©** en `demo@cesizen.fr` - [ ] Page **Journal de bord** affichĂ©e, zoom Ă  **125 %**, notifications coupĂ©es - [ ] Slides ouvertes en second (`.pptx` + un export **PDF** de secours)