# đ Guide Complet - Application React Professionnelle ## â Ce qui a Ă©tĂ© créé Une **application web complĂšte et professionnelle** pour utiliser votre modĂšle YOLO : ### đ Structure de l'Application ``` trash_full_detection/ âââ api.py â API FastAPI backend âââ start-app.sh â Script de dĂ©marrage âââ stop-app.sh â Script d'arrĂȘt âââ DEPLOIEMENT_APP.md â Guide de dĂ©ploiement âââ web-app/ â âââ src/ â â âââ components/ â â â âââ Layout.jsx â Navigation et layout â â âââ pages/ â â â âââ HomePage.jsx â Page d'accueil â â â âââ UploadPage.jsx â Upload et dĂ©tection â â â âââ HistoryPage.jsx â Historique â â â âââ StatsPage.jsx â Statistiques avec graphiques â â â âââ AboutPage.jsx â Ă propos â â âââ App.jsx â Composant racine â â âââ main.jsx â Point d'entrĂ©e â â âââ index.css â Styles Tailwind â âââ index.html â HTML principal â âââ package.json â DĂ©pendances â âââ vite.config.js â Configuration Vite â âââ tailwind.config.js â Configuration Tailwind â âââ postcss.config.js â Configuration PostCSS â âââ README.md â Documentation âââ models/yolo/ âââ best.pt â ModĂšle entraĂźnĂ© âââ best.onnx â Export ONNX ``` --- ## đŻ FonctionnalitĂ©s ImplĂ©mentĂ©es ### 1. đ Page d'Accueil - Hero section animĂ©e avec gradient - Statistiques en temps rĂ©el (4 cartes) - PrĂ©sentation des fonctionnalitĂ©s (4 features avec icĂŽnes) - Guide d'utilisation en 3 Ă©tapes - Animations Framer Motion ### 2. đ€ Upload et DĂ©tection - **Drag & drop** professionnel avec react-dropzone - PrĂ©visualisation de l'image - DĂ©tection en temps rĂ©el via API - **RĂ©sultats complets** : - Image annotĂ©e avec bounding boxes - Liste des dĂ©tections (label + confiance) - CoordonnĂ©es bbox en JSON - Temps d'infĂ©rence - TĂ©lĂ©chargement image annotĂ©e - Gestion d'erreurs complĂšte - Animations de chargement ### 3. đ Historique - Sauvegarde locale (localStorage) - Grille responsive des dĂ©tections - Modal de dĂ©tail au clic - Filtres et badges colorĂ©s (pleine/vide) - Bouton "Effacer tout" - 50 derniĂšres dĂ©tections gardĂ©es ### 4. đ Statistiques - **4 graphiques interactifs** (Recharts) : - DĂ©tections hebdomadaires (ligne) - Distribution pleine/vide (pie chart) - PrĂ©cision par seuil (bar chart) - Comparaison classes (bar chart) - MĂ©triques du modĂšle - Informations techniques ### 5. âčïž Ă Propos - Description du projet - Technologies utilisĂ©es (avec icĂŽnes) - Performances du modĂšle (4 mĂ©triques) - Architecture systĂšme - Applications pratiques - Liens vers documentation ### 6. đš Design Professionnel - **Tailwind CSS** avec configuration custom - **Framer Motion** pour animations fluides - **Lucide React** pour icĂŽnes modernes - Responsive mobile-first - Navigation sticky - Footer informatif - Dark mode ready (configurable) --- ## đ DĂ©marrage Rapide (2 commandes) ### MĂ©thode 1 : Script Automatique (RecommandĂ©) ```bash cd /home/mouhammad/Bureau/nourrou/projet-poubelle/trash_full_detection ./start-app.sh ``` **Ce script fait automatiquement** : 1. â VĂ©rifie Node.js et le modĂšle 2. â Installe les dĂ©pendances si nĂ©cessaire 3. â DĂ©marre l'API backend (port 8000) 4. â DĂ©marre le frontend React (port 3000) 5. â Affiche les URLs d'accĂšs **AccĂ©dez Ă l'application :** http://localhost:3000 **ArrĂȘter :** `Ctrl+C` ou `./stop-app.sh` ### MĂ©thode 2 : Manuel (2 terminaux) **Terminal 1 - Backend:** ```bash cd trash_full_detection/ source .venv/bin/activate python api.py ``` **Terminal 2 - Frontend:** ```bash cd trash_full_detection/web-app/ npm install # PremiĂšre fois seulement npm run dev ``` --- ## đ§Ș Test de l'Application ### 1. Test Page d'Accueil 1. Ouvrir http://localhost:3000 2. VĂ©rifier l'animation du hero 3. Observer les 4 statistiques 4. Cliquer sur "Commencer la DĂ©tection" ### 2. Test DĂ©tection 1. Aller sur `/upload` 2. Glisser-dĂ©poser cette image : ``` My-First-Project-2/test/images/img_122_jpg.rf.7dd543872a8a7df198786227b6aeb614.jpg ``` 3. Cliquer "DĂ©tecter" 4. **RĂ©sultat attendu** : ```json { "label": "poubelle_pleine", "confidence": 91.35%, "bbox": [3.14, 34.99, 474.78, 485.31] } ``` 5. Image annotĂ©e affichĂ©e 6. TĂ©lĂ©charger l'image annotĂ©e ### 3. Test Historique 1. Faire 3-4 dĂ©tections 2. Aller sur `/history` 3. Voir les cartes des dĂ©tections 4. Cliquer sur une carte â modal dĂ©tail 5. Tester "Effacer tout" ### 4. Test Statistiques 1. Aller sur `/stats` 2. Observer les graphiques interactifs 3. Hover sur les points des graphiques 4. VĂ©rifier les mĂ©triques du modĂšle ### 5. Test Responsive 1. Ouvrir DevTools (F12) 2. Tester mobile (375px) 3. VĂ©rifier navigation bottom 4. Tester tablet (768px) 5. Tester desktop (1440px) --- ## đĄ API Backend ### Endpoints Disponibles #### 1. `GET /` Page d'accueil de l'API ```json { "message": "Trash Detection API", "status": "running", "model_loaded": true } ``` #### 2. `GET /api/health` SantĂ© de l'API ```bash curl http://localhost:8000/api/health ``` #### 3. `POST /api/predict/image` DĂ©tection sur image ```bash curl -X POST "http://localhost:8000/api/predict/image" \ -F "file=@image.jpg" ``` #### 4. `GET /api/stats` Statistiques du modĂšle ```bash curl http://localhost:8000/api/stats ``` #### 5. `GET /docs` Documentation Swagger interactive ``` http://localhost:8000/docs ``` --- ## đš Personnalisation ### Changer les Couleurs **Fichier:** `web-app/tailwind.config.js` ```javascript colors: { primary: { 500: '#votre-couleur', 600: '#votre-couleur-foncĂ©e', // ... } } ``` ### Ajouter une Page **1. CrĂ©er:** `web-app/src/pages/MaPage.jsx` ```jsx const MaPage = () => { return (