# coder-vedansh/bhoomisync architecture

> Architecture diagram of the GitHub repository coder-vedansh/bhoomisync, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/coder-vedansh/bhoomisync
- Repository: https://github.com/coder-vedansh/bhoomisync

## Overview

BhoomiSync ingests drone camera, LiDAR, and GNSS data, stores and indexes sensor assets, then supports geospatial processing, AI analysis, cadastral records and comparison, and reporting through a React GIS dashboard. The README documents the acquisition-to-map workflow and major capabilities; sampled ingestion and AI source confirms selected service calls. Other domain links reflect documented capabilities and module structure, not inspected call chains. Flight control is explicitly outside the product.

Main entry points: [`backend/app/db/session.py`](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/db/session.py) (Application database), [`backend/app/modules/cloud_ingestion/ingestion_service.py`](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/ingestion_service.py) (Ingestion service), [`backend/app/modules/drone_ingestion/services/ingestion_service.py`](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/drone_ingestion/services/ingestion_service.py) (Mission service), [`backend/app/api/router.py`](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/api/router.py) (REST API router)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_acquisition["Acquisition &amp; Ingestion"]
  node_sensors(("Drone sensors"))
  node_gateway["Acquisition gateways"]
  node_ingest_api["Ingestion API"]
  node_ingest_service["Ingestion service"]
  node_extractors["Sensor extractors"]
  node_storage["Object storage"]
  node_mission_api["Mission API"]
  node_mission_service["Mission service"]
end

subgraph group_analysis["Spatial &amp; AI Analysis"]
  node_processing["Geospatial processing"]
  node_fusion["Sensor fusion<br/>[fusion_engine.py]"]
  node_ai["AI analysis suite"]
  node_boundary["Boundary detection<br/>[fastsam_engine.py]"]
end

subgraph group_land["Land Information"]
  node_land_records["Land records"]
  node_comparison["Parcel comparison"]
  node_parcels["Parcel services<br/>[service.py]"]
  node_reports["Report generation<br/>[report_service.py]"]
end

subgraph group_client["Dashboard &amp; API"]
  node_api["REST API router<br/>[router.py]"]
  node_frontend["GIS dashboard<br/>[App.tsx]"]
  node_map["GIS map<br/>[GisMap.tsx]"]
  node_api_client["Frontend API client<br/>[api.ts]"]
end

node_operator(("Survey operator"))
node_r2[("Cloudflare R2")]
node_db[("Application database<br/>[session.py]")]
node_engine["External processing engine"]

node_operator -->|"uses"| node_frontend
node_sensors -->|"send payloads"| node_gateway
node_gateway -->|"relay data"| node_ingest_api
node_frontend -->|"requests data"| node_api_client
node_api_client -->|"calls"| node_api
node_api -->|"dispatches"| node_ingest_api
node_api -->|"dispatches"| node_mission_api
node_ingest_api -->|"invokes"| node_ingest_service
node_ingest_service -->|"extracts metadata"| node_extractors
node_ingest_service -->|"stores assets"| node_storage
node_storage -.->|"persists objects"| node_r2
node_ingest_service -->|"records assets"| node_db
node_mission_api -->|"invokes"| node_mission_service
node_mission_service -->|"presigns uploads"| node_r2
node_mission_service -->|"records missions"| node_db
node_processing -->|"aligns sensor data"| node_fusion
node_ai -->|"detects boundaries"| node_boundary
node_engine -.->|"submits jobs"| node_processing
node_land_records -->|"reads records"| node_db
node_comparison -->|"compares parcels"| node_land_records
node_parcels -->|"reads and writes"| node_db
node_reports -->|"reads survey data"| node_db
node_frontend -->|"renders spatial data"| node_map
node_api_client -->|"fetches mission data"| node_mission_api

click node_gateway "https://github.com/coder-vedansh/bhoomisync/tree/main/backend/app/modules/cloud_ingestion/gateway"
click node_ingest_api "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/ingestion_router.py"
click node_ingest_service "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/ingestion_service.py"
click node_extractors "https://github.com/coder-vedansh/bhoomisync/tree/main/backend/app/modules/cloud_ingestion/extractors"
click node_storage "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/storage_provider.py"
click node_mission_api "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/drone_ingestion/routers/drone_ingestion_router.py"
click node_mission_service "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/drone_ingestion/services/ingestion_service.py"
click node_db "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/db/session.py"
click node_processing "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/geospatial_processing/services/geospatial_service.py"
click node_fusion "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/geospatial_processing/fusion/fusion_engine.py"
click node_ai "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/ai/inference/inference_engine.py"
click node_boundary "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/ai/boundary_detection/fastsam_engine.py"
click node_engine "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/services/external_engine_client.py"
click node_land_records "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/land_records/services/land_record_service.py"
click node_comparison "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/land_records/comparison/comparison_engine.py"
click node_parcels "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/parcels/service.py"
click node_reports "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/reporting/services/report_service.py"
click node_api "https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/api/router.py"
click node_frontend "https://github.com/coder-vedansh/bhoomisync/blob/main/frontend/src/App.tsx"
click node_map "https://github.com/coder-vedansh/bhoomisync/blob/main/frontend/src/components/gis/GisMap.tsx"
click node_api_client "https://github.com/coder-vedansh/bhoomisync/blob/main/frontend/src/services/api.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sensors,node_gateway,node_ingest_api,node_ingest_service,node_extractors,node_storage,node_mission_api,node_mission_service toneBlue
class node_processing,node_fusion,node_ai,node_boundary,node_r2,node_db toneAmber
class node_land_records,node_comparison,node_parcels,node_reports toneMint
class node_api,node_frontend,node_map,node_api_client toneRose
class node_operator toneIndigo
class node_engine toneTeal
```

## Components

### Acquisition & Ingestion

- **Drone sensors**
- [Acquisition gateways](https://github.com/coder-vedansh/bhoomisync/tree/main/backend/app/modules/cloud_ingestion/gateway): `backend/app/modules/cloud_ingestion/gateway`
- [Ingestion API](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/ingestion_router.py): `backend/app/modules/cloud_ingestion/ingestion_router.py`
- [Ingestion service](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/ingestion_service.py): `backend/app/modules/cloud_ingestion/ingestion_service.py`
- [Sensor extractors](https://github.com/coder-vedansh/bhoomisync/tree/main/backend/app/modules/cloud_ingestion/extractors): `backend/app/modules/cloud_ingestion/extractors`
- [Object storage](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/cloud_ingestion/storage_provider.py): `backend/app/modules/cloud_ingestion/storage_provider.py`
- [Mission API](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/drone_ingestion/routers/drone_ingestion_router.py): `backend/app/modules/drone_ingestion/routers/drone_ingestion_router.py`
- [Mission service](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/drone_ingestion/services/ingestion_service.py): `backend/app/modules/drone_ingestion/services/ingestion_service.py`

### Spatial & AI Analysis

- [Geospatial processing](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/geospatial_processing/services/geospatial_service.py): `backend/app/modules/geospatial_processing/services/geospatial_service.py`
- [Sensor fusion](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/geospatial_processing/fusion/fusion_engine.py): `backend/app/modules/geospatial_processing/fusion/fusion_engine.py`
- [AI analysis suite](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/ai/inference/inference_engine.py): `backend/app/modules/ai/inference/inference_engine.py`
- [Boundary detection](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/ai/boundary_detection/fastsam_engine.py): `backend/app/modules/ai/boundary_detection/fastsam_engine.py`

### Land Information

- [Land records](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/land_records/services/land_record_service.py): `backend/app/modules/land_records/services/land_record_service.py`
- [Parcel comparison](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/land_records/comparison/comparison_engine.py): `backend/app/modules/land_records/comparison/comparison_engine.py`
- [Parcel services](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/parcels/service.py): `backend/app/modules/parcels/service.py`
- [Report generation](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/modules/reporting/services/report_service.py): `backend/app/modules/reporting/services/report_service.py`

### Dashboard & API

- [REST API router](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/api/router.py): `backend/app/api/router.py`
- [GIS dashboard](https://github.com/coder-vedansh/bhoomisync/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [GIS map](https://github.com/coder-vedansh/bhoomisync/blob/main/frontend/src/components/gis/GisMap.tsx): `frontend/src/components/gis/GisMap.tsx`
- [Frontend API client](https://github.com/coder-vedansh/bhoomisync/blob/main/frontend/src/services/api.ts): `frontend/src/services/api.ts`

### Other components

- **Survey operator**
- **Cloudflare R2**
- [Application database](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/db/session.py): `backend/app/db/session.py`
- [External processing engine](https://github.com/coder-vedansh/bhoomisync/blob/main/backend/app/services/external_engine_client.py): `backend/app/services/external_engine_client.py`

## Connections

- Survey operator → GIS dashboard: uses
- Drone sensors → Acquisition gateways: send payloads
- Acquisition gateways → Ingestion API: relay data
- GIS dashboard → Frontend API client: requests data
- Frontend API client → REST API router: calls
- REST API router → Ingestion API: dispatches
- REST API router → Mission API: dispatches
- Ingestion API → Ingestion service: invokes
- Ingestion service → Sensor extractors: extracts metadata
- Ingestion service → Object storage: stores assets
- Object storage → Cloudflare R2: persists objects
- Ingestion service → Application database: records assets
- Mission API → Mission service: invokes
- Mission service → Cloudflare R2: presigns uploads
- Mission service → Application database: records missions
- Geospatial processing → Sensor fusion: aligns sensor data
- AI analysis suite → Boundary detection: detects boundaries
- External processing engine → Geospatial processing: submits jobs
- Land records → Application database: reads records
- Parcel comparison → Land records: compares parcels
- Parcel services → Application database: reads and writes
- Report generation → Application database: reads survey data
- GIS dashboard → GIS map: renders spatial data
- Frontend API client → Mission API: fetches mission data
