PDC / run_app.sh
borndeveloper's picture
Initial commit: PDC Intelligence application
ecd72cb
Raw
History Blame Contribute Delete
1.54 kB
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BACKEND_DIR="$ROOT_DIR/backend"
FRONTEND_DIR="$ROOT_DIR/frontend"
echo "[PDC] Starting full application"
if [ ! -d "$BACKEND_DIR" ] || [ ! -d "$FRONTEND_DIR" ]; then
echo "[PDC] ERROR: backend or frontend directory missing"
exit 1
fi
if [ ! -d "$BACKEND_DIR/.venv" ]; then
echo "[PDC] Creating backend virtual environment"
python3 -m venv "$BACKEND_DIR/.venv"
fi
echo "[PDC] Installing backend dependencies"
"$BACKEND_DIR/.venv/bin/pip" install -q -r "$BACKEND_DIR/requirements.txt"
echo "[PDC] Running backend test suite"
"$BACKEND_DIR/.venv/bin/python" -m pytest -q "$BACKEND_DIR/tests"
echo "[PDC] Installing frontend dependencies"
cd "$FRONTEND_DIR"
npm install
cleanup() {
echo "[PDC] Stopping services"
if [ -n "${BACKEND_PID:-}" ] && kill -0 "$BACKEND_PID" 2>/dev/null; then
kill "$BACKEND_PID" || true
fi
if [ -n "${FRONTEND_PID:-}" ] && kill -0 "$FRONTEND_PID" 2>/dev/null; then
kill "$FRONTEND_PID" || true
fi
}
trap cleanup EXIT INT TERM
echo "[PDC] Launching backend on http://localhost:8000"
cd "$BACKEND_DIR"
"$BACKEND_DIR/.venv/bin/uvicorn" app.main:app --host 0.0.0.0 --port 8000 --reload &
BACKEND_PID=$!
echo "[PDC] Launching frontend on http://localhost:3000"
cd "$FRONTEND_DIR"
npm run dev -- --port 3000 &
FRONTEND_PID=$!
echo "[PDC] Application is running"
echo "[PDC] Frontend: http://localhost:3000"
echo "[PDC] Backend: http://localhost:8000"
wait "$BACKEND_PID" "$FRONTEND_PID"