@echo off REM Storyteller RPG Startup Script for Windows REM This script starts both the backend and frontend servers echo. echo 🎭 Starting Storyteller RPG... echo. REM Kill any existing instances echo Checking for existing instances... REM Kill processes on port 8000 (backend) for /f "tokens=5" %%a in ('netstat -aon ^| find ":8000" ^| find "LISTENING"') do ( echo Killing existing backend on port 8000 (PID: %%a) taskkill /F /PID %%a >nul 2>&1 ) REM Kill processes on port 3000 (frontend) for /f "tokens=5" %%a in ('netstat -aon ^| find ":3000" ^| find "LISTENING"') do ( echo Killing existing frontend on port 3000 (PID: %%a) taskkill /F /PID %%a >nul 2>&1 ) REM Wait for ports to be released timeout /t 2 /nobreak >nul echo Ready to start fresh instances echo. REM Check if virtual environment exists if not exist ".venv" ( echo Creating virtual environment... python -m venv .venv ) REM Activate virtual environment echo Activating virtual environment... call .venv\Scripts\activate.bat REM Install backend dependencies if needed python -c "import fastapi" 2>nul if errorlevel 1 ( echo Installing backend dependencies... pip install -r requirements.txt ) REM Check if frontend dependencies are installed if not exist "frontend\node_modules" ( echo Installing frontend dependencies... cd frontend call npm install cd .. ) echo. echo Starting Backend (http://localhost:8000)... start "Storyteller Backend" cmd /k "python main.py" REM Wait a moment for backend to start timeout /t 3 /nobreak >nul echo Starting Frontend (http://localhost:3000)... cd frontend start "Storyteller Frontend" cmd /k "npm start" cd .. echo. echo ✅ Servers are starting! echo Backend: http://localhost:8000 echo Frontend: http://localhost:3000 echo. REM Wait for frontend to be ready, then open browser echo Waiting for frontend to start... :wait_loop timeout /t 1 /nobreak >nul curl -s http://localhost:3000 >nul 2>&1 if errorlevel 1 goto wait_loop echo Frontend ready! Opening browser... start http://localhost:3000 echo. echo Both servers are running in separate windows. echo Close those windows to stop the servers. echo. pause