#!/bin/bash # Function to kill background processes on exit cleanup() { echo "Stopping servers..." kill $(jobs -p) exit } trap cleanup SIGINT SIGTERM echo "Starting Stock Analysis Web App..." # 1. Start Backend echo "Starting Backend (Port 8000)..." if [ -d ".venv" ]; then source .venv/bin/activate fi # Set PYTHONPATH to include project root PROJECT_ROOT=$(pwd) export PYTHONPATH=$PROJECT_ROOT:$PROJECT_ROOT/backend # Run uvicorn in backend directory (cd backend && env PYTHONPATH=$PROJECT_ROOT:$PROJECT_ROOT/backend ../.venv/bin/python -m uvicorn app.main:app --reload --port 8000) & BACKEND_PID=$! # Wait a moment for backend to initialize sleep 2 # 2. Start Frontend echo "Starting Frontend (Port 3001)..." (cd frontend && npm run dev) & FRONTEND_PID=$! echo "App is running!" echo "Backend: http://localhost:8000/docs" echo "Frontend: http://localhost:3001" echo "Press Ctrl+C to stop both servers." # Wait for both processes wait $BACKEND_PID $FRONTEND_PID