43 lines
990 B
Bash
Executable File
43 lines
990 B
Bash
Executable File
#!/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
|