Skip to content

rabesss/prana

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prana - India's Environmental Intelligence Platform

Prana is a zero-cost AQI + weather monitoring platform. Python/FastAPI backend ingests OpenAQ data, enriches with Open-Meteo weather, serves read-only JSON API.

Monorepo Structure

prana/
├── apps/
│   └── backend/          # FastAPI + MongoDB (the application)
│       ├── src/          # Production code
│       │   ├── api/      # Routers, middleware, schemas
│       │   ├── db/       # Repository pattern (Motor/MongoDB)
│       │   ├── models/   # Pydantic v2 models
│       │   ├── scripts/  # CLI tools (ingestion, retention)
│       │   └── services/ # Business logic
│       ├── specs/        # Feature specifications
│       └── tests/        # pytest (async, respx mocking)
├── pyproject.toml       # Root workspace config (uv workspaces)
├── AGENTS.md            # Development guidelines
└── .github/workflows/   # GitHub Actions (CI/CD)

Backend Commands

# From repository root (uses workspace)
uv sync --extra dev

# Or from apps/backend/
cd apps/backend && uv sync --extra dev
pytest tests/ -v                     # Run tests
ruff check src/ && ruff format src/  # Lint
mypy src                             # Type check
uvicorn src.api.main:app --reload    # Dev server

API Endpoints

  • GET /health - Health check
  • GET /api/v1/cities - City snapshot
  • GET /api/v1/stations - Station data
  • GET /api/v1/stations/{id} - Individual station

About

India's Environmental Intelligence Platform - AQI + weather monitoring

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages