#!/usr/bin/env bash # Voice Guide — start backend + frontend set -euo pipefail ROOT="$(cd "$(dirname "$0")" && pwd)" REGISTRY_ROOT="$(cd "$ROOT/../.." && pwd)" echo "=== Voice Guide ===" echo "Backend: http://localhost:8787" echo "Frontend: http://localhost:5188" echo "" # Backend echo "[1/2] Starting backend..." cd "$ROOT/backend" if [ ! -d ".venv" ]; then uv venv .venv uv pip install -r requirements.txt fi .venv/bin/uvicorn main:app --host 0.0.0.0 --port 8787 --reload & BACKEND_PID=$! # Frontend echo "[2/2] Starting frontend..." cd "$ROOT/frontend" if [ ! -d "node_modules" ]; then pnpm install fi pnpm dev & FRONTEND_PID=$! echo "" echo "Backend PID: $BACKEND_PID" echo "Frontend PID: $FRONTEND_PID" echo "Press Ctrl+C to stop both." trap "kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit" INT TERM wait