- Python 3.11+ (3.12 recommended)
- Git
- RootStack database (optional — the API works without data, but endpoints will return empty results)
# Clone the repository
git clone https://github.com/Varnasr/BridgeStack.git
cd BridgeStack
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtdocker compose up --buildThe API will be available at http://localhost:8000.
uvicorn app.main:app --reloadOpen http://localhost:8000/docs for the interactive Swagger UI.
# Check API health
curl http://localhost:8000/health
# List all states
curl http://localhost:8000/api/v1/geography/states
# Filter states by region
curl "http://localhost:8000/api/v1/geography/states?region=South"
# Get indicator details
curl http://localhost:8000/api/v1/indicators/IMRBridgeStack reads from a RootStack SQLite database. To populate it:
# Clone RootStack
git clone https://github.com/Varnasr/RootStack.git
cd RootStack
bash scripts/setup.sh
# Copy the database to BridgeStack
cp rootstack.db ../BridgeStack/Then restart the API — all endpoints will return data.
For contributors, install the dev tools:
pip install -e ".[dev]"
# Or use Make
make devThis installs ruff (linter/formatter) and pytest with coverage support.
make test # Run tests with coverage
make lint # Check for lint issues
make format # Auto-format code
make check # Run all checks (lint + test)
make run # Start dev server- API Reference — Explore all available endpoints
- Configuration — Customize BridgeStack settings
- Architecture — Understand the system design