#!/bin/bash echo "๐Ÿš€ Avvio Simple Fullstack App..." # Colori per output GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Funzione per stampare messaggi colorati print_status() { echo -e "${BLUE}[INFO]${NC} $1" } print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } # Controlla se Python3 รจ installato if ! command -v python3 &> /dev/null; then echo "โŒ Python3 non trovato. Installa Python3 prima di continuare." exit 1 fi # Controlla se Docker รจ installato if ! command -v docker &> /dev/null; then echo "โŒ Docker non trovato. Installa Docker prima di continuare." exit 1 fi # Controlla se http-server รจ installato if ! command -v http-server &> /dev/null; then print_warning "http-server non trovato. Installando..." npm install -g http-server fi # Crea virtual environment se non esiste if [ ! -d "venv" ]; then print_status "Creazione virtual environment..." python3 -m venv venv print_success "Virtual environment creato!" else print_status "Virtual environment giร  esistente" fi # Attiva virtual environment print_status "Attivazione virtual environment..." source venv/bin/activate # Installa dipendenze print_status "Installazione dipendenze Python..." pip install -r backend/requirements.txt print_success "Dipendenze installate!" # Avvia MongoDB con Docker print_status "Avvio MongoDB con Docker..." cd backend docker-compose up -d cd .. # Aspetta che MongoDB sia pronto print_status "Attesa MongoDB..." sleep 5 # Avvia backend in background print_status "Avvio backend FastAPI..." cd backend python main.py & BACKEND_PID=$! cd .. # Aspetta che il backend sia pronto print_status "Attesa backend..." sleep 3 # Avvia frontend print_status "Avvio frontend..." cd testing http-server -p 3000 -o & FRONTEND_PID=$! cd .. print_success "๐ŸŽ‰ Tutto avviato!" echo "" echo "๐Ÿ“ฑ Frontend: http://localhost:3000" echo "๐Ÿ”ง Backend API: http://localhost:8000" echo "๐Ÿ—„๏ธ MongoDB: localhost:27017" echo "" echo "๐Ÿ’ก Premi Ctrl+C per fermare tutto" # Funzione per cleanup cleanup() { echo "" print_status "Fermando servizi..." kill $BACKEND_PID 2>/dev/null kill $FRONTEND_PID 2>/dev/null cd backend docker-compose down cd .. print_success "Servizi fermati!" exit 0 } # Intercetta Ctrl+C trap cleanup SIGINT # Mantieni lo script in esecuzione wait