Overview¶
Product Purpose¶
LandMS manages parcel polygons and parcel metadata with GIS-native behavior. The app is designed around PostGIS operations for spatial selection, summaries, measurements, and exports.
Core Functional Domains¶
- Parcel registry: create/read/update/delete parcel records with geometry
- Map operations: viewport rendering, zoom-level summaries, drawing/editing
- Selection workflows: tab-scoped selected parcel IDs shared across URLs
- Dataset governance: active dataset loading and dataset-scoped uniqueness
- Spatial exchange: upload analysis/preview/apply and multi-format export
- Analytics: distribution charts for discrete and continuous parcel attributes
Technology Stack¶
- Backend: Django 5.2, GeoDjango
- Database: PostGIS (primary), SpatiaLite fallback for local tests/dev fallback
- Frontend: Django templates + progressive JavaScript modules
- Map: Leaflet + Leaflet Draw
- Charts: ECharts
- Spatial tooling: GDAL/OGR (
ogr2ogr,ogrinfo)
High-Level Visibility Rules¶
- Anonymous users: public landing/auth flows
- Authenticated non-staff: own parcels + public parcels
- Staff: all visible parcels in the active dataset, edit/admin workflows
- Internal users (
profile.is_internal_user) or staff: analytics/reports