File size: 2,991 Bytes
aedd96f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/bin/bash

# 🚀 Script de démarrage rapide - Trash Detection App
# Ce script démarre l'API backend et l'application React frontend

echo "🚀 Démarrage de Trash Detection App"
echo "===================================="
echo ""

# Couleurs
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# Vérifier Node.js
echo -e "${BLUE}Vérification de Node.js...${NC}"
if ! command -v node &> /dev/null; then
    echo -e "${RED}❌ Node.js n'est pas installé${NC}"
    echo "Installez Node.js: https://nodejs.org/"
    exit 1
fi
echo -e "${GREEN}✅ Node.js $(node --version)${NC}"
echo ""

# Vérifier le modèle
echo -e "${BLUE}Vérification du modèle YOLO...${NC}"
if [ ! -f "models/yolo/best.pt" ]; then
    echo -e "${RED}❌ Modèle introuvable: models/yolo/best.pt${NC}"
    echo "Entraînez d'abord le modèle avec 1_yolo_detection_training.ipynb"
    exit 1
fi
echo -e "${GREEN}✅ Modèle trouvé ($(du -h models/yolo/best.pt | cut -f1))${NC}"
echo ""

# Installer les dépendances frontend si nécessaire
if [ ! -d "web-app/node_modules" ]; then
    echo -e "${BLUE}Installation des dépendances frontend...${NC}"
    cd web-app
    npm install
    cd ..
    echo -e "${GREEN}✅ Dépendances installées${NC}"
    echo ""
fi

# Démarrer l'API backend
echo -e "${BLUE}Démarrage de l'API backend...${NC}"
source .venv/bin/activate
python api.py &
API_PID=$!
echo -e "${GREEN}✅ API démarrée (PID: $API_PID)${NC}"
echo -e "   URL: ${GREEN}http://localhost:8000${NC}"
echo -e "   Docs: ${GREEN}http://localhost:8000/docs${NC}"
echo ""

# Attendre que l'API soit prête
echo -e "${BLUE}Attente du démarrage de l'API...${NC}"
sleep 3

# Vérifier que l'API répond
if curl -s http://localhost:8000/api/health > /dev/null; then
    echo -e "${GREEN}✅ API opérationnelle${NC}"
else
    echo -e "${RED}⚠️ L'API ne répond pas encore${NC}"
fi
echo ""

# Démarrer le frontend
echo -e "${BLUE}Démarrage du frontend React...${NC}"
cd web-app
npm run dev &
FRONTEND_PID=$!
echo -e "${GREEN}✅ Frontend démarré (PID: $FRONTEND_PID)${NC}"
echo -e "   URL: ${GREEN}http://localhost:3000${NC}"
echo ""

echo "===================================="
echo -e "${GREEN}🎉 Application lancée avec succès !${NC}"
echo "===================================="
echo ""
echo "📱 Accédez à l'application:"
echo -e "   ${BLUE}http://localhost:3000${NC}"
echo ""
echo "📡 API Backend:"
echo -e "   ${BLUE}http://localhost:8000${NC}"
echo -e "   ${BLUE}http://localhost:8000/docs${NC} (documentation)"
echo ""
echo "⏹️  Pour arrêter l'application:"
echo "   Ctrl+C ou exécutez: ./stop-app.sh"
echo ""

# Fonction pour arrêter proprement
cleanup() {
    echo ""
    echo -e "${BLUE}Arrêt de l'application...${NC}"
    kill $API_PID 2>/dev/null
    kill $FRONTEND_PID 2>/dev/null
    echo -e "${GREEN}✅ Application arrêtée${NC}"
    exit 0
}

trap cleanup SIGINT SIGTERM

# Garder le script actif
echo "Appuyez sur Ctrl+C pour arrêter..."
wait