Skip to Main Content
← All Case Studies
AgriTech · GIS · Kazakhstan

KazPasture — GIS platform for satellite pasture monitoring

Digital pasture monitoring powered by GIS, satellite data and mobile fieldwork.

FlutterReact + MapLibreFastAPIPostgreSQL + PostGISGoogle Earth Engine
244pastures
1 567water sources
1 022water zones
2 571boundary object
KazPasture GIS editor with pastures, water sources and zones
GIS admin panelSpatial Data Management
KazPasture Mobile Pasture Map
Mobile Map · Actual GeoJSON Data
01 / Challenge

Turn complex geodata into a practical tool for field and office teams

Pasture boundaries, water resources, satellite trends, soil and climate data were scattered across different sources. Specialists needed fast mobile access to territory information, while administrators needed a safe way to update GIS data without releasing a new application version.

KazPasture brought the mobile application, satellite analytics and a separate web administration panel into one connected system: from selecting a territory on the map to viewing its analytical profile, receiving recommendations and publishing updated geospatial data.

Product
Cross-Platform GIS System
Users
Field specialists, analysts and administrators
Platforms
Android, iOS, Web
Languages
Russian, Kazakh, English
02 / Solution

Three interfaces built around one geospatial model

01

Mobile App

Area search, map layers, pasture profile, analytics, favourites, user-defined areas and a PDF report.

02

Satellite backend

NDVI, precipitation, soil, elevation, temperature, tiles, time series, recommendations and a two-tier cache.

03

GIS admin panel

Editing water sources and zones, drafts, versions, publishing, rollback, users and system settings.

03 / Mobile App

Fieldwork Starts with the Map

The map displays pasture boundaries, administrative districts, water sources and watering zones. Users enable thematic layers, locate their position and select the territory they need.

  • OpenStreetMap and flutter_map
  • NDVI, soil, precipitation and water as separate layers
  • Local and Server-Side Data Sources
  • Drawing a custom area within a pasture
  • Favorites with local storage and synchronization
KazPasture Map with Pasture Boundaries
Interactive Map
Selected KazPasture Pasture Profile
Area and Industry Classification
04 / Land Analytics

Satellite, climate and industry indicators in a single report

For each selected pasture, the system compiles a complete profile and presents indicators in cards, charts and tables.

Average, Minimum, Maximum, and NDVI RangeVegetation and Precipitation Time SeriesTemperature and Elevation RangeSoil pH, Carbon, Density, and Water-Holding CapacityDominant Land-Cover ClassForage Resources and Estimated Grazing CapacityWater Sources and Zones Within the TerritoryAutomated and AI RecommendationsPrint and Send the Final PDF

The values shown on the analytics screen are illustrative; the interface and implemented indicator set are real.

KazPasture pasture analytics with NDVI and environmental indicators
Analytics Profile · Demo Data
05 / Data Scale

Hundreds of territories and thousands of spatial objects

244pasture polygon
1 567water-source points
1 022watering zones
2 571administrative boundary object
EPSG:3857working Web Mercator coordinate system
GiSTPostgreSQL spatial indexes
BBOXloading sites within the visible area
ST_Unionmaterialized union of zones
06 / GIS Admin Panel

Map editing without changing the application code

MapLibre GL displays pastures, water sources and watering zones in the browser. Administrators can add, edit and remove water sources, draw circular zones and filter features by the current map extent.

KazPasture administrative GIS editor built on MapLibre GL
Interactive GIS EditorReal local GeoJSON data; demonstration session
07 / Change Control

Draft → Review → Publish → Rollback

Geodata changes do not appear in the mobile application immediately. An administrator prepares a draft, publishes a new version and can restore the previous state when necessary.

  • Version History and Change Author
  • Snapshot of Published Sites
  • Rollback to a Previous Version
  • JSON / GeoJSON export for the mobile client
KazPasture Geodata Versions and Drafts
Data VersioningDemo API Records
08 / Operations

Visibility into satellite processing, cache and background tasks

The dashboard shows the status of Google Earth Engine, memory/file cache, active MapIDs, users and pre-caching completeness. TTL is configured separately for different types of resource-intensive data.

KazPasture System Dashboard
System MonitoringGEE, cache, MapID and precaching · demo data
KazPasture Cache Settings
TTL SettingsNDVI, Soil, Precipitation, Tiles, Analytics, and AI
09 / Performance and Offline Mode

We transfer only the geometry required and avoid repeating computationally intensive analytics

01

Local GeoJSON

The base map and boundaries are available without having to load all geometry from the server.

02

BBOX queries

The API returns geospatial objects for the visible area, reducing data transfer and rendering overhead.

03

Memory cache

Frequently requested satellite analytics results are served quickly from process memory.

04

File cache

The second layer retains heavy data between separate requests.

05

Background Warming

Pre-caching prepares pasture data before users request it.

06

Configurable TTLs

Cache lifetimes are configured separately for NDVI, soil, precipitation, tiles and recommendations.

10 / Architecture

We separated transactional GIS operations from resource-intensive satellite processing

FlutterAndroid · iOS · WebReact 18GIS admin panel
REST / GeoJSON
Admin API · FastAPIUsers, favorites, GIS objects and versionsNDVI API · FastAPISatellite layers, analytics, recommendations and cache
PostgreSQL + PostGISGeometry, Roles, and VersionsGoogle Earth EngineSatellite Data ProcessingAI APIRecommendationsMemory + filesTwo-Level Cache

The two backend services can scale independently: database operations do not compete within the same process with NDVI, tile and time-series calculations.

11 / Technology Stack

A cross-platform client, geospatial database and Python backend

Mobile

Flutter · Dart 3

Material/Cupertino UI, Provider, Secure Storage and SharedPreferences.

Maps

flutter_map · OSM

latlong2, proj4dart, geolocation and device permissions.

Admin

React 18 · Vite 5

TypeScript, Tailwind, Zustand, Axios, Radix UI and MapLibre GL 4.

Backend

Python · FastAPI

Pydantic, SQLAlchemy Async, asyncpg, GeoAlchemy2 and Shapely.

GIS Database

PostgreSQL + PostGIS

Alembic, GiST indexes, BBOX and spatial functions.

Satellite

Google Earth Engine

NDVI, imagery, tiles, climate indicators and time series.

Reports + AI

PDF · DeepSeek

fl_chart, printing, share_plus and OpenAI-compatible API.

Infrastructure

Docker · Nginx

Docker Compose, reverse proxy, health endpoints and Render Blueprint.

≈31 000lines of Dart, Python, TypeScript/TSX, SQL and HTML, excluding dependencies and build directories1.1.3+5Flutter application version in the current pubspec.yaml
12 / Access and Security

Roles and critical operations are controlled on the backend

01

JWT access / refresh

Short and long sessions; refresh tokens are rotated and can be revoked.

02

bcrypt

Passwords are never stored in plain text and are verified against a secure hash.

03

user / admin roles

Administrators can edit and publish content and manage users.

04

Pydantic

The backend validates the structure and types of incoming API data.

05

Rate limiting

Sensitive routes are protected by rate limiting.

06

CORS allowlist

API access is restricted to approved frontend origins.

Secure Login to the KazPasture GIS Admin Panel
Admin Panel Login
KazPasture user and role management
Users and Roles · Demo Data
13 / Account and Settings

Guest mode lowers the barrier to entry, while an account synchronizes progress

Users can view the map as guests and synchronise favourites after signing in. Settings include language, data source, administrative boundaries and local cache.

  • Registration and Password Recovery
  • Guest Flow
  • Secure On-Device Token Storage
  • Profile and Account Deletion
KazPasture Login Screen
Login and Guest Mode
KazPasture Mobile App Settings
Map and Cache Settings
KazPasture Profile
User Profile
14 / Implementation Review

Built production interfaces and verified every functional area

Flutter Webrelease build passed
1 505modules processed by the admin frontend production build
5 / 5widget and backend tests passed
12screens reviewed for the case study

Vite warns that the map editor's GIS chunk exceeds 500 kB. This does not prevent the build, but identifies the next optimization step: further code splitting. The supplied materials do not include load tests or verified production KPIs.

15 / Result

A unified digital workflow from satellite imagery to field decisions

KazPasture combines mobile fieldwork, a spatial database, satellite analytics and controlled data management. Specialists gain clear territory profiles, managers receive a consistent assessment format, and administrators can safely publish and roll back GIS changes.

The architecture can support a regional monitoring system, an agricultural analytics product or another platform that combines field data with intensive computation and mapping.

AgriTechGISRemote sensingMobilePostGISAI
Your Next Product

Need a GIS platform, mobile application or analytics service?

We will analyse the data and field processes, design the architecture and build a manageable solution.

Discuss the Project ↗Back to Case Studies