team-9/start.sh

113 lines
No EOL
2.4 KiB
Bash
Executable file

#!/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