ac-helper/run_dev.sh
Vadym Samoilenko 72c50b2c92 Initial commit — AC Tool unified application
Merges ac-helper (PHP Activation Calendar) and brief-extractor (Python AI)
into a single Docker app with React/TypeScript frontend.

Features:
- Brief upload → AI extraction → review → Activation Calendar import
- Handsontable v17 spreadsheet with dependent dropdowns (148 categories)
- AI natural language commands via Gemini (YOLO mode, voice input)
- Azure AD MSAL SPA PKCE authentication, user roles (user/admin)
- CSV Activation Calendar export
- Real-time WebSocket job progress
- Admin: user management, dropdown Excel upload
- Multi-stage Dockerfile, docker-compose, nginx proxy instructions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 13:24:46 +00:00

52 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
# Local development runner
# Usage: ./run_dev.sh
set -e
ROOT="$(cd "$(dirname "$0")" && pwd)"
BACKEND="$ROOT/backend"
FRONTEND="$ROOT/frontend"
# Ensure data dirs
mkdir -p "$BACKEND/data/uploads" "$BACKEND/data/outputs" "$BACKEND/data/sheets"
# Load .env if present
[ -f "$BACKEND/.env" ] && export $(grep -v '^#' "$BACKEND/.env" | xargs)
# Override paths for local dev
export DATA_DIR="$BACKEND/data"
export UPLOADS_DIR="$BACKEND/data/uploads"
export OUTPUTS_DIR="$BACKEND/data/outputs"
export SHEETS_DIR="$BACKEND/data/sheets"
export USERS_FILE="$BACKEND/data/users.json"
export DROPDOWNS_FILE="$BACKEND/data/dropdowns.json"
# Create venv if missing
if [ ! -d "$BACKEND/.venv" ]; then
echo "Creating Python venv..."
python3 -m venv "$BACKEND/.venv"
"$BACKEND/.venv/bin/pip" install -q -r "$BACKEND/requirements.txt"
fi
# Start backend in background
echo "Starting backend on http://localhost:8000 ..."
cd "$BACKEND"
.venv/bin/python -m hypercorn server.app:create_app\(\) --bind 0.0.0.0:8000 --worker-class asyncio &
BACKEND_PID=$!
# Start frontend dev server
echo "Starting frontend on http://localhost:5173/ac-helper/ ..."
cd "$FRONTEND"
npm run dev &
FRONTEND_PID=$!
echo ""
echo "AC Tool running:"
echo " Frontend: http://localhost:5173/ac-helper/"
echo " Backend: http://localhost:8000"
echo ""
echo "Press Ctrl+C to stop both servers."
trap "kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit 0" INT TERM
wait