Grid Interconnection & Energy Siting Copilot is a production-ready internal product for screening renewable energy project sites before teams spend money on deeper diligence. It scores sites against interconnection, permitting, community, and execution heuristics, ranks a portfolio, generates an investment-style readiness memo, and now includes team access controls plus an auditable activity feed.
- Scores candidate sites across five major ISO regions.
- Stores persistent projects, sites, and analysis runs.
- Protects the workspace with account-based login, signed session cookies, CSRF protection, and role-based access.
- Gives admins in-app user management for analysts, viewers, and additional admins.
- Captures an audit trail for logins, project changes, site changes, user changes, and analysis runs.
- Imports candidate sites from CSV for spreadsheet-based analyst teams.
- Exports project snapshots, ranked analysis CSVs, and memo markdown for investment reviews.
- Ships with automated unit, integration, and migration checks.
This product is designed for early-stage screening, not final engineering signoff. It helps development and investment teams decide where to spend deeper diligence effort faster and more consistently.
- FastAPI
- SQLAlchemy
- Alembic
- Pydantic and pydantic-settings
- Jinja2
- Vanilla JavaScript and CSS dashboard
- pytest with coverage gates
- Docker and Render deployment config
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
copy .env.example .env
alembic upgrade head
uvicorn app.main:app --reloadOpen http://127.0.0.1:8000.
.venv\Scripts\python -m pytest --cov=app --cov-report=term-missing --cov-fail-under=95GET /healthGET /readyGET /api/sessionPOST /api/session/loginGET /api/activityGET /api/admin/usersPOST /api/admin/usersPATCH /api/admin/users/{user_id}GET /api/reference/regionsGET /api/reference/site-template.csvPOST /api/projectsPOST /api/projects/{project_id}/sites/import-csvPOST /api/projects/{project_id}/analysisGET /api/projects/{project_id}/exportGET /api/projects/{project_id}/analysis/latest.csvGET /api/projects/{project_id}/analysis/latest.md
- Use
DATABASE_URLfor Postgres in shared environments. - Set
BOOTSTRAP_ADMIN_USERNAME,BOOTSTRAP_ADMIN_PASSWORD, andSESSION_SECRETbefore giving users access. APP_ACCESS_PASSWORDremains available only as a legacy migration fallback for older pilot deployments.- Keep
AUTO_CREATE_SCHEMA=falsein production and let Alembic own schema changes. - Render deployment uses
start.sh, which runsalembic upgrade headbefore starting Uvicorn. - See docs/launch-readiness.md for the launch checklist.
codex/mvp-grid-interconnectioncodex/feature-site-scoring-apicodex/feature-comparison-and-memoscodex/feature-web-dashboardcodex/feature-deployment-and-cicodex/feature-project-persistencecodex/feature-user-workspacecodex/feature-security-and-opscodex/feature-bulk-intake-and-exportcodex/feature-migrations-and-launch-readinesscodex/feature-rbac-auth-and-csrfcodex/feature-admin-activitycodex/feature-production-opscodex/production-hardening
Each major feature was developed on its own branch and merged into the integration branch before promotion to main.