All projects

Selected work with live demos and case studies.

Showing 7 of 7 projects.

AgriInsight

Satellite-based crop health monitoring and decision support for farms.

DjangoPostGISGoogle Earth EngineNDVIEarly warning
AgriInsight screenshot

Users define farm areas on an interactive map, analyze crop health using satellite-derived vegetation indices from Google Earth Engine, and receive AI-powered recommendations for yield optimization, irrigation, and sustainable practices. Vegetation indices are computed from public satellite composites; farm boundaries and demo outputs are sample data.

Standalone page ↗

AssetTrack | Utility Asset Management

Map-based asset inventory, work orders and compliance for utilities in Kenya and East Africa.

DjangoGeoDjangoPostGISLeafletWork Orders
AssetTrack | Utility Asset Management screenshot

Draw and edit point, line and polygon assets directly on the map, run radius and bounding-box searches plus flood-zone overlap checks, and toggle layers including a heatmap overlay. Work orders auto-assign the nearest available technician via PostGIS distance queries, while lifecycle timelines, DBSCAN failure clusters, theft and vandalism geofence alerts, QR inventory reconciliation, compliance reports with CSV export, cost clustering, depreciation schedules, impact simulation, vegetation encroachment tracking, community reporting with hotspot clustering, inspection route optimization and dig-permit conflict detection cover the full asset workflow. Django templates serve the dashboard with a glassmorphism UI that collapses to bottom tabs on mobile. Demo uses curated sample assets for evaluation.

Standalone page ↗

Crop Early Warning System

Crop yield and soil moisture monitoring with automated alerts.

FlaskGEEMachine LearningAlerts
Crop Early Warning System screenshot

Flask prototype combining DEM, rainfall and watershed outputs with yield and soil-moisture views. Alert channels are demonstrated in the repo workflows.

Standalone page ↗

FleetGuard | Fleet Management Dashboard

Live tracking, geofencing, SACCO management and payments for Kenyan logistics.

Next.jsPostGISLeafletSocket.IO
FleetGuard | Fleet Management Dashboard screenshot

Vehicles broadcast positions every 2 seconds over Socket.IO with smooth interpolated markers, 5-second polling fallback and 1-hour history trails. Operators draw geofence polygons with per-zone SMS or alerts checked server-side every 30 seconds, search places via Mapbox geocoding, find the nearest vehicle to any click, and view delay and rating heatmaps plus clickable county overlays with vehicle counts. SACCOs get member roles, invitations, prepaid wallets with STK top-ups and subscription plans, alongside maintenance scheduling, proof of delivery with codes, driver leaderboards, surge pricing zones, ride matching, insurance quotes and policies, SMS alerts and a USSD gateway for non-smartphone users. Demo runs on simulated fleet positions for evaluation.

Standalone page ↗

Obstacle Compliance & Airport GIS System

Prototype web GIS for checking structures against aerodrome obstacle limitation surfaces in Kenya.

DjangoGeoDjangoPostGISLeafletICAO Annex 14
Obstacle Compliance & Airport GIS System screenshot

Personal prototype, not an official KCAA system. Models ICAO Annex 14 Vol I (8th ed.) surfaces — approach, inner approach, transitional, balked-landing, take-off-climb, inner horizontal, conical, outer horizontal — modelled on KCAA advisory circulars AC-AGA005C (June 2024) and AC-AGA032A (Feb 2026). Certificates are demonstration outputs.

Data sources are public inputs only (OpenStreetMap basemap, public aerodrome lists and published ICAO/KCAA surface definitions). Surface geometry follows the ICAO Annex 14 parameters in code and is a demonstration model, not a certified survey.

Version history

  • v1 · Jan 2025 — Airport visualisation and query tool (Render)
  • v2 · mid-2025 — PostGIS migration and OLS modelling work
  • v3 · Present — OLS engine and approval workflow (Cloud Run)

Standalone page ↗

KCAA Smart Assistant (RAG)

Grounded, citation-backed answers from KCAA regulations, services and news.

RAGChromaDBLangChainStreamlitGroq
KCAA Smart Assistant (RAG) screenshot

Local hits answer first with chat history, feedback buttons and input validation; web and social searches fire in parallel only when local info falls short, keeping latency at 3–8 seconds on free DDGS tiers. Applicable beyond aviation to early-warning bulletin dissemination and policy knowledge systems. No formal retrieval evaluation published yet; answers always carry source citations for manual verification.

Standalone page ↗

SiteSeeker | Retail Location Intelligence

Draw a polygon and get competitors, demographics, traffic and revenue estimates in one panel.

Next.jsPostGISLeafletLocation intelligence
SiteSeeker | Retail Location Intelligence screenshot

Modes cover polygon, buffer, cluster, franchise territories, retail leakage, supplier search, demographic forecast, site tours and partnership matching over competitors, demographics, traffic nodes, land use, foot traffic, roads, informal markets, commercial plots, community pins, suppliers and partnerships. Community members can submit opportunity and problem pins, groups manage wallets and invitations, and reports save, export to PDF and compare. Next.js 16 with TypeScript and Tailwind, Leaflet with draw tools, PostGIS on Aiven (SRID 4326), tested with Vitest. Demo uses curated sample data for competitors, demographics and traffic layers.

Standalone page ↗