Full-stack dashboard for collecting and viewing test runs from ACE product repos.
dashboard/backend- FastAPI API with PostgreSQL persistencedashboard/frontend- React, Tailwind CSS, and Recharts UIdashboard/docker-compose.yml- PostgreSQL, backend, and frontend servicesshared/report_results.py- reusable reporter for posting product test results
cd C:\Users\HP\Dashboard\dashboard
docker compose up --buildOpen:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8000 - Health check:
http://localhost:8000/health
Start PostgreSQL with credentials matching .env.example, then run the backend:
cd C:\Users\HP\Dashboard\dashboard\backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
$env:DATABASE_URL="postgresql://annam:annam_secure_pass@localhost:5432/annam_qa"
uvicorn main:app --reloadRun the frontend:
cd C:\Users\HP\Dashboard\dashboard\frontend
npm install
$env:VITE_API_BASE="http://localhost:8000"
npm run devPOST /api/runs- create a run with layers and test casesGET /api/apps- latest status for AjraSakha, Reviewer System, Web App, Agents Call Centre, Outreach, and Questions CollectionGET /api/apps/{app_name}/runs- last 10 runs for an appGET /api/runs/{run_id}- full run detailGET /api/apps/{app_name}/trend- pass rate trend for the last 30 runs
Install reporter dependencies in the product repo:
pip install requests beautifulsoup4Post AjraSakha combined results (all 4 layers):
$env:DASHBOARD_URL="http://localhost:8000"
python "C:\Users\HP\Dashboard\shared\report_results.py" --type=ajrasakha-combined --html=path\to\stable_suite_report.html --eval=path\to\evaluation_report_live.csvPost Reviewer System results:
$env:DASHBOARD_URL="http://localhost:8000"
python "C:\Users\HP\Dashboard\shared\report_results.py" path\to\e2e-results.json --type=reviewer--type=ajrasakha- posts from HTML report (Layer 1, 2, 3, 4)--type=ajrasakha-combined- combines HTML + eval CSV (recommended)--type=ajrasakha-eval- posts Layer 3 only from eval CSV--type=ajrasakha-whatsapp- posts Layer 4 WhatsApp E2E from CSV--type=reviewer- posts from Vitest JSON output