# đŸ‡«đŸ‡· Fullstack Lab - Visualisation des ImpĂŽts Locaux Application de visualisation de donnĂ©es fiscales (Taux & Volumes) basĂ©e sur les donnĂ©es ouvertes de data.gouv.fr (Fichiers REI). **Stack Technique :** * **Backend :** API Platform (Symfony 6/7) + PostgreSQL * **Frontend :** React / Next.js * **Infrastructure :** Docker (Compose) --- ## 🚀 1. PrĂ©-requis * **Docker Desktop** installĂ© et lancĂ©. * **Git**. * Le fichier de donnĂ©es CSV (voir ci-dessous). --- ## đŸ› ïž 2. Installation & DĂ©marrage (Premier lancement) ### A. Lancement des conteneurs Ouvre un terminal Ă  la racine du projet et lance : ```bash docker compose up -d --build ``` ### B. Installation des dĂ©pendances et Base de donnĂ©es Une fois les conteneurs verts (vĂ©rifie sur Docker Desktop), lance ces commandes une par une : ```Bash # 1. Installer les dĂ©pendances PHP (Vendor) docker compose exec php composer install # 2. CrĂ©er la structure de la base de donnĂ©es docker compose exec php bin/console doctrine:schema:update --force # 3. Importer les donnĂ©es (ETL) - Peut prendre 1 Ă  2 minutes docker compose exec -e XDEBUG_MODE=off php bin/console doctrine:fixtures:load --no-interaction --no-debug ``` 🎉 C'est prĂȘt ! - API & Docs : http://localhost:8000/api - Frontend : http://localhost:3000 - Admin DB (Optionnel) : Port 5433 (User: app, Pass: root, DB: app) ## ⚙ Commandes Utiles au quotidien ArrĂȘter le projet ```Bash docker compose stop ``` Relancer le projet ```Bash docker compose up -d ``` Vider le cache (En cas de bug mystique) ```Bash docker compose exec php bin/console cache:clear ``` AccĂ©der au terminal du Backend ```Bash docker compose exec php sh ``` Supprimer des anciennes donnĂ©es et mettre Ă  jour le schĂ©ma ```Bash sudo docker compose exec php bin/console doctrine:schema:drop --force --full-database sudo docker compose exec php bin/console doctrine:schema:update --force ``` ## ✅ Tests ### Protocole reproductible (ordre recommandĂ©) Lancer les tests dans cet ordre pour la soutenance : ```bash # 1) VĂ©rifier les services docker compose ps # 2) Tests API backend docker compose exec php sh -lc "cd /app && APP_ENV=test php bin/console doctrine:database:create --if-not-exists" docker compose exec php sh -lc "cd /app && APP_ENV=test php bin/console doctrine:schema:update --force" docker compose exec php sh -lc "cd /app && APP_ENV=test SYMFONY_PHPUNIT_VERSION=9.6 vendor/bin/simple-phpunit tests/Api/StatsEndpointsTest.php" # 3) Tests frontend unitaires docker compose exec frontend npm test -- --watchAll=false # 4) Tests end-to-end Playwright cd e2e npm install npx playwright install --with-deps chromium npx playwright test npx playwright show-report ``` ### RĂ©sultats attendus - Backend API : `OK` et `0 failures` sur `StatsEndpointsTest`. - Frontend : suite de tests verte. - E2E : `5 passed`. ### Cas couverts par les tests API (US-08) - Endpoints d'agrĂ©gation fonctionnels : - `/api/stats/region-evolution` - `/api/stats/department-correlation` - `/api/stats/regional-distribution` - Cas limites et nĂ©gatifs : - `startYear > endYear` retourne une collection vide. - `department` inconnu ou absent retourne vide. - `tax` invalide tombe sur la valeur par dĂ©faut (`tfpb`). - annĂ©e inconnue retourne vide. - vĂ©rification que la distribution rĂ©gionale dĂ©pend bien de la taxe choisie. ### Cas couverts par les tests E2E (US-08) - Affichage du dashboard et prĂ©sence des 3 visualisations. - Interaction utilisateur sur les filtres (taxes / pĂ©riodes / dĂ©partement). - VĂ©rification des appels API utilisĂ©s par le front. - VĂ©rification que les rĂ©ponses contiennent des donnĂ©es exploitables. - Cas nĂ©gatif E2E : pĂ©riode invalide (pas de donnĂ©es). ### Preuves Ă  montrer pendant la soutenance - Sortie console des tests API (backend). - Sortie console des tests E2E (`5 passed`). - Rapport HTML Playwright (`npx playwright show-report`). - Capture de l'onglet Network montrant des payloads agrĂ©gĂ©s et lĂ©gers.