Full-stack application for silent regulatory due diligence during pet facility M&A.
- Backend: FastAPI + SQLAlchemy
- Frontend: React (Vite)
- Database: PostgreSQL
- External APIs: OpenCage Geocoding, ArcGIS GIS lookup
backend/- API, scan engine integration, DB models/schemafrontend/- Dashboard + deal intake/detail user interfaceknowledge_base/- Regulatory service/state/inspection/zoning/RACI dataservices/- External service adapter workspacesilent_scan_engine/- Engine notes and integration scopedashboard/- Dashboard-specific docsreports/- Reporting/export assets
- New Regulatory Scan intake form with services checkboxes
- Silent scan pipeline (geocode, jurisdiction, GIS attempt with graceful fallback)
- Regulatory discovery engine (licenses, agencies, checklist)
- RACI matrix mapping for due diligence ownership
- LP Deal Risk Radar score (0–18) with risk classification
- Dashboard table with color risk dots and regulatory statuses
- Deal detail page with snapshot, checklist, agencies, licenses, risk radar
- Report export endpoints: PDF/TXT/JSON
- PostgreSQL schema for Deals, Services, ParcelData, RiskRadar, RequiredLicenses, InspectionAgencies, DueDiligenceTasks, Documents
Create PostgreSQL DB:
createdb petregOptional schema bootstrap:
psql -d petreg -f backend/schema.sqlcd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export DATABASE_URL="postgresql+psycopg2://postgres:postgres@localhost:5432/petreg"
# optional external API keys
export OPENCAGE_API_KEY="your_key"
export ARCGIS_ENDPOINT="https://.../query"
uvicorn app.main:app --reload --port 8000cd frontend
npm install
npm run devOpen http://localhost:5173.
POST /api/scans- run silent scan and create dealGET /api/deals- dashboard dealsGET /api/deals/{id}- full deal detailGET /api/deals/{id}/export/pdf|txt|json- report exports