# syedabbas5122j/lakshyabhumi architecture

> Architecture diagram of the GitHub repository syedabbas5122j/lakshyabhumi, 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/syedabbas5122j/lakshyabhumi
- Repository: https://github.com/syedabbas5122j/lakshyabhumi

## Overview

Bhusha is a land-intelligence platform centered on parcel harmonization, conflict detection, and review-driven administrative action. Its intended workflow spans source-data ingestion and geospatial processing through matching, conflict review, and administrative decisions, with citizen and officer portals as user interfaces. The sampled pipeline confirms candidate generation and similarity scoring, but the other engine modules and most endpoint implementations were not sampled; their presence is supported by the file tree, while their wiring is left unspecified.

Main entry points: [`backend/app/api/v1/router.py`](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/router.py) (Versioned router), [`frontend/src/App.tsx`](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/App.tsx) (Map workspace), [`frontend/src/pages/citizen/CitizenPortal.tsx`](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/pages/citizen/CitizenPortal.tsx) (Citizen portal), [`frontend/src/pages/officer/OfficerDashboard.tsx`](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/pages/officer/OfficerDashboard.tsx) (Officer dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["User portals"]
  node_citizen_portal["Citizen portal<br/>[CitizenPortal.tsx]"]
  node_officer_dashboard["Officer dashboard"]
  node_app["Map workspace<br/>[App.tsx]"]
  node_engine_api["Engine API client<br/>[engineApi.ts]"]
end

subgraph group_api["API surface"]
  node_main["API application<br/>[main.py]"]
  node_router["Versioned router<br/>[router.py]"]
  node_ingestion_endpoint["Ingestion endpoint<br/>[ingestion.py]"]
  node_engine_endpoint["Engine endpoints<br/>[engine.py]"]
  node_conflicts_endpoint["Conflict endpoints<br/>[conflicts.py]"]
  node_ground_truth_endpoint["Ground truth endpoint<br/>[ground_truth.py]"]
  node_export_endpoint["Export endpoint<br/>[export.py]"]
  node_versions_endpoint["Version endpoints<br/>[versions.py]"]
end

subgraph group_processing["Geospatial engine"]
  node_pipeline["Matching pipeline<br/>[pipeline.py]"]
  node_matching["Feature matching<br/>[matching.py]"]
  node_topology["Topology correction<br/>[topology.py]"]
  node_change_detection["Change detection"]
  node_georeferencing["Georeferencing<br/>[georeferencing.py]"]
  node_revenue_parsers["Revenue parsers"]
  node_gnss["GNSS support"]
  node_conflict_engine["Conflict analysis<br/>[conflicts.py]"]
  node_confidence["Confidence scoring<br/>[confidence.py]"]
end

subgraph group_operations["Review operations"]
  node_review_queue["Review decisions<br/>[review_queue.py]"]
  node_lineage["Feature lineage<br/>[lineage.py]"]
  node_ground_truth_service["Ground truth service"]
  node_notification_service["Notifications"]
  node_report_service["Reports<br/>[report_service.py]"]
  node_engine_task["Batch engine task<br/>[engine_tasks.py]"]
end

subgraph group_data["Data services"]
  node_ingestion_service["Ingestion service"]
  node_dataset_model[("Dataset records<br/>[datasets.py]")]
  node_feature_model[("Feature records<br/>[features.py]")]
  node_audit_model[("Audit records<br/>[audit_log.py]")]
  node_server["Read-only data API<br/>[server.js]"]
end

node_citizen(("Citizen"))
node_officer(("Officer"))

node_citizen -->|"uses"| node_citizen_portal
node_officer -->|"uses"| node_officer_dashboard
node_main -->|"includes"| node_router
node_router -->|"routes"| node_ingestion_endpoint
node_router -->|"routes"| node_engine_endpoint
node_router -->|"routes"| node_conflicts_endpoint
node_router -->|"routes"| node_ground_truth_endpoint
node_router -->|"routes"| node_export_endpoint
node_router -->|"routes"| node_versions_endpoint
node_engine_api -->|"requests health"| node_engine_endpoint
node_engine_task -->|"calls"| node_pipeline
node_pipeline -->|"generates candidates, scores"| node_matching
node_app -->|"requests health"| node_engine_api
node_citizen_portal -->|"opens"| node_app
node_officer_dashboard -->|"opens"| node_app
node_citizen -->|"requests data"| node_server
node_officer -->|"requests data"| node_server

click node_citizen_portal "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/pages/citizen/CitizenPortal.tsx"
click node_officer_dashboard "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/pages/officer/OfficerDashboard.tsx"
click node_app "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/App.tsx"
click node_engine_api "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/services/engineApi.ts"
click node_main "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/main.py"
click node_router "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/router.py"
click node_ingestion_endpoint "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/ingestion.py"
click node_engine_endpoint "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/engine.py"
click node_conflicts_endpoint "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/conflicts.py"
click node_ground_truth_endpoint "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/ground_truth.py"
click node_export_endpoint "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/export.py"
click node_versions_endpoint "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/versions.py"
click node_pipeline "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/pipeline.py"
click node_matching "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/matching.py"
click node_topology "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/topology.py"
click node_change_detection "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/change_detection.py"
click node_georeferencing "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/georeferencing.py"
click node_revenue_parsers "https://github.com/syedabbas5122j/lakshyabhumi/tree/main/backend/app/engine/revenue_formats"
click node_gnss "https://github.com/syedabbas5122j/lakshyabhumi/tree/main/backend/app/engine/gnss"
click node_conflict_engine "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/conflicts.py"
click node_confidence "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/confidence.py"
click node_review_queue "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/review_queue.py"
click node_lineage "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/lineage.py"
click node_ground_truth_service "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/ground_truth_service.py"
click node_notification_service "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/notification_service.py"
click node_report_service "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/report_service.py"
click node_ingestion_service "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/ingestion_service.py"
click node_dataset_model "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/models/datasets.py"
click node_feature_model "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/models/features.py"
click node_audit_model "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/models/audit_log.py"
click node_server "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/server.js"
click node_engine_task "https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/workers/tasks/engine_tasks.py"

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_citizen_portal,node_officer_dashboard,node_app,node_engine_api toneBlue
class node_main,node_router,node_ingestion_endpoint,node_engine_endpoint,node_conflicts_endpoint,node_ground_truth_endpoint,node_export_endpoint,node_versions_endpoint toneAmber
class node_pipeline,node_matching,node_topology,node_change_detection,node_georeferencing,node_revenue_parsers,node_gnss,node_conflict_engine,node_confidence toneMint
class node_review_queue,node_lineage,node_ground_truth_service,node_notification_service,node_report_service,node_engine_task toneRose
class node_ingestion_service,node_dataset_model,node_feature_model,node_audit_model,node_server,node_citizen,node_officer toneIndigo
```

## Components

### User portals

- [Citizen portal](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/pages/citizen/CitizenPortal.tsx): `frontend/src/pages/citizen/CitizenPortal.tsx`
- [Officer dashboard](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/pages/officer/OfficerDashboard.tsx): `frontend/src/pages/officer/OfficerDashboard.tsx`
- [Map workspace](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Engine API client](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/frontend/src/services/engineApi.ts): `frontend/src/services/engineApi.ts`

### API surface

- [API application](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/main.py): `backend/app/main.py`
- [Versioned router](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/router.py): `backend/app/api/v1/router.py`
- [Ingestion endpoint](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/ingestion.py): `backend/app/api/v1/endpoints/ingestion.py`
- [Engine endpoints](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/engine.py): `backend/app/api/v1/endpoints/engine.py`
- [Conflict endpoints](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/conflicts.py): `backend/app/api/v1/endpoints/conflicts.py`
- [Ground truth endpoint](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/ground_truth.py): `backend/app/api/v1/endpoints/ground_truth.py`
- [Export endpoint](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/export.py): `backend/app/api/v1/endpoints/export.py`
- [Version endpoints](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/api/v1/endpoints/versions.py): `backend/app/api/v1/endpoints/versions.py`

### Geospatial engine

- [Matching pipeline](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/pipeline.py): `backend/app/engine/pipeline.py`
- [Feature matching](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/matching.py): `backend/app/engine/matching.py`
- [Topology correction](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/topology.py): `backend/app/engine/topology.py`
- [Change detection](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/change_detection.py): `backend/app/engine/change_detection.py`
- [Georeferencing](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/georeferencing.py): `backend/app/engine/georeferencing.py`
- [Revenue parsers](https://github.com/syedabbas5122j/lakshyabhumi/tree/main/backend/app/engine/revenue_formats): `backend/app/engine/revenue_formats`
- [GNSS support](https://github.com/syedabbas5122j/lakshyabhumi/tree/main/backend/app/engine/gnss): `backend/app/engine/gnss`
- [Conflict analysis](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/conflicts.py): `backend/app/engine/conflicts.py`
- [Confidence scoring](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/confidence.py): `backend/app/engine/confidence.py`

### Review operations

- [Review decisions](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/review_queue.py): `backend/app/engine/review_queue.py`
- [Feature lineage](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/engine/lineage.py): `backend/app/engine/lineage.py`
- [Ground truth service](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/ground_truth_service.py): `backend/app/services/ground_truth_service.py`
- [Notifications](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/notification_service.py): `backend/app/services/notification_service.py`
- [Reports](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/report_service.py): `backend/app/services/report_service.py`
- [Batch engine task](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/workers/tasks/engine_tasks.py): `backend/app/workers/tasks/engine_tasks.py`

### Data services

- [Ingestion service](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/services/ingestion_service.py): `backend/app/services/ingestion_service.py`
- [Dataset records](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/models/datasets.py): `backend/app/models/datasets.py`
- [Feature records](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/models/features.py): `backend/app/models/features.py`
- [Audit records](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/app/models/audit_log.py): `backend/app/models/audit_log.py`
- [Read-only data API](https://github.com/syedabbas5122j/lakshyabhumi/blob/main/backend/server.js): `backend/server.js`

### Other components

- **Citizen**
- **Officer**

## Connections

- Citizen → Citizen portal: uses
- Officer → Officer dashboard: uses
- API application → Versioned router: includes
- Versioned router → Ingestion endpoint: routes
- Versioned router → Engine endpoints: routes
- Versioned router → Conflict endpoints: routes
- Versioned router → Ground truth endpoint: routes
- Versioned router → Export endpoint: routes
- Versioned router → Version endpoints: routes
- Engine API client → Engine endpoints: requests health
- Batch engine task → Matching pipeline: calls
- Matching pipeline → Feature matching: generates candidates, scores
- Map workspace → Engine API client: requests health
- Citizen portal → Map workspace: opens
- Officer dashboard → Map workspace: opens
- Citizen → Read-only data API: requests data
- Officer → Read-only data API: requests data
