#!/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 PYTHON_CMD="python3" if ! command_exists python3; then if command_exists py; then PYTHON_CMD="py" else echo "❌ Python Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. УстановитС Python 3.8+" exit 1 fi fi echo "βœ“ Python Π½Π°ΠΉΠ΄Π΅Π½: $($PYTHON_CMD --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..." $PYTHON_CMD -m venv backend/venv fi echo "βœ“ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ" # Активация venv (Ρ€Π°Π·Π½Ρ‹Π΅ способы для Linux/WSL ΠΈ Windows) if [ -f "backend/venv/bin/activate" ]; then source backend/venv/bin/activate elif [ -f "backend/venv/Scripts/activate" ]; then source backend/venv/Scripts/activate else echo "❌ НС Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ venv" exit 1 fi # Установка зависимостСй Python echo "πŸ“¦ Установка Python зависимостСй..." 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)..." cd backend $PYTHON_CMD 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