#!/bin/bash set -e echo "πŸš€ Team Status Board - Запуск прилоТСния" echo "=========================================" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # Ѐункция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ command_exists() { command -v "$1" >/dev/null 2>&1 } # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Python if ! command_exists python3; then echo "❌ Python3 Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. УстановитС Python 3.8+" exit 1 fi echo "βœ“ Python Π½Π°ΠΉΠ΄Π΅Π½: $(python3 --version)" # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Node.js if ! command_exists node; then echo "❌ Node.js Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. УстановитС Node.js 18+" exit 1 fi echo "βœ“ Node.js Π½Π°ΠΉΠ΄Π΅Π½: $(node --version)" # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ активация venv для бэкСнда if [ ! -d "backend/venv" ]; then echo "πŸ“¦ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния Python..." python3 -m venv backend/venv fi echo "βœ“ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ" # Установка зависимостСй Python echo "πŸ“¦ Установка Python зависимостСй..." source backend/venv/bin/activate pip install --quiet -r backend/requirements.txt echo "βœ“ Python зависимости установлСны" # Установка зависимостСй Node.js echo "πŸ“¦ Установка Node.js зависимостСй..." cd frontend if [ ! -d "node_modules" ]; then npm install --silent fi echo "βœ“ Node.js зависимости установлСны" cd .. # Запуск бэкСнда Π² Ρ„ΠΎΠ½Π΅ echo "πŸ”™ Запуск бэкСнда (FastAPI)..." source backend/venv/bin/activate cd backend python main.py & BACKEND_PID=$! cd .. # ОТиданиС запуска бэкСнда echo "⏳ ОТиданиС запуска бэкСнда..." sleep 3 # Запуск Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° echo "🎨 Запуск Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π° (React + Vite)..." cd frontend npm run dev & FRONTEND_PID=$! cd .. echo "" echo "=========================================" echo "βœ… ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ!" echo "" echo "БэкСнд API: http://localhost:8000" echo "Frontend: http://localhost:3000" echo "" echo "PID бэкСнда: $BACKEND_PID" echo "PID Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°: $FRONTEND_PID" echo "" echo "Для остановки Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+C" echo "=========================================" # ОТиданиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ wait