Inspiration
Rwanda's agricultural sector employs over 60% of the population, yet most smallholder farmers still rely on guesswork for soil management. Cooperatives face the same challenges every season: nutrient-depleted fields, poorly timed irrigation, and disease outbreaks that spread before anyone can respond.
The disconnect is clear agronomists have the knowledge but no real-time field data. Technicians visit fields but record readings on paper that never reach decision-makers in time. Farmers, most without smartphones, have no way to access recommendations for their specific plots.
UmuhinziConnect was born from a simple question: What if every soil reading automatically generated actionable advice and delivered it to every farmer even those with only a basic phone?
What it does
UmuhinziConnect is an end-to-end agricultural intelligence platform with three layers:
IoT Data Collection ESP32 microcontrollers with NPK sensors measure nitrogen, phosphorus, potassium, moisture, temperature, pH, and electrical conductivity.
Intelligent Processing Every sensor reading triggers a three-stage recommendation pipeline:
- Rule-based analysis using NPK thresholds adjusted by crop type and growth phase (auto-calculated from planting date)
- Weather-aware irrigation advice using 7-day rainfall forecasts from Open-Meteo
- AI-powered plain-language summaries via AI that combine sensor data, weather, and agronomic context into advice a farmer can act on
Multi-Channel Delivery Three user roles, three interfaces:
- Agronomists get a web dashboard with zone-level oversight, sensor gauges, trend charts, and disease alert broadcasting
- Cooperative Technicians use a responsive web app to register fields, log readings (from IoT devices or manual entry), and manage sensors
- Farmers access field-specific recommendations through a USSD simulator — a menu-driven interface in Kinyarwanda that works on any basic phone without internet
How we built it
We designed UmuhinziConnect around one core principle: reliability over novelty. Farming advice cannot hallucinate — a wrong fertilizer recommendation can destroy a season's harvest. So we built the recommendation engine as a deterministic, rule-based system first, with AI (Claude) as a summarization and language layer on top.
Tech stack:
- Frontend: React + TypeScript + TailwindCSS + Recharts + Framer Motion
- Backend: Node.js + Express + TypeScript + Sequelize ORM
- Database: PostgreSQL
- AI: Open AI API for advisory summaries
- IoT: ESP32 + RS485 7-in-1 NPK sensor communicating via HTTP
- Weather: Open-Meteo API
Key architecture decisions:
- The data model mirrors Rwanda's actual cooperative structure: Zone → Cooperative → Farm → Field → Reading → Recommendation. Disease alerts can be scoped to any level.
- Instead of a mobile app we couldn't finish in 48 hours, we built a responsive web app for technicians and a USSD simulator for farmers. The USSD menus are kept shallow (max 2 levels) to avoid session timeouts.
- The IoT integration uses WiFi network discovery — the technician's browser finds ESP32 devices on the same network, registers them, and reads sensors directly from the New Reading page. No cloud broker needed.
Challenges we ran into
ESP32 sensor integration under time pressure. The 7-in-1 NPK sensor communicates via RS485/Modbus, requiring precise timing and byte-level protocol handling. Running both the sensor reader and an HTTP server on the same microcontroller meant careful task scheduling. We solved this by making the ESP32 a simple HTTP endpoint (POST /read) that the backend proxies through.
Cascading role-based data access. With a five-level hierarchy (Zone → Cooperative → Farm → Field → Reading), every API endpoint needed to respect who can see what. A technician should only see their cooperative's farms. A farmer should only see their assigned fields. Getting Sequelize associations and middleware filtering right across 15+ endpoints was the biggest backend effort.
Making recommendations actually useful. Generic "add more nitrogen" advice helps nobody. We built crop-specific threshold tables adjusted by growth phase, combined with real 7-day weather forecasts. The result: advice like "Phosphorus is critically low at 6 mg/kg — apply 80 kg/ha DAP before pod formation" instead of vague suggestions.
USSD UX constraints. USSD messages have strict character limits, no formatting, and timeout quickly. Condensing a 7-parameter soil analysis into a readable menu in Kinyarwanda required aggressive summarization and a flat navigation structure.
Accomplishments that we're proud of
- The full pipeline works end-to-end: an ESP32 sensor reads soil data → the backend generates crop-specific and weather-aware recommendations → the farmer sees actionable advice on a basic phone via USSD. All in under 48 hours.
- The recommendation engine is genuinely useful. It doesn't just flag "low nitrogen" — it tells you exactly how much urea to apply per hectare, adjusted for your crop's current growth phase, with irrigation advice based on this week's actual rainfall forecast.
- Three real user interfaces for three distinct user roles, each designed for their actual working context — a dashboard for office-based agronomists, a mobile-friendly web app for field technicians, and a USSD menu for farmers with basic phones.
- Realistic Rwandan context throughout — actual GPS coordinates, local crop varieties (coffee, irish potato, climbing beans), regional soil conditions, Kinyarwanda USSD menus, and disease alerts for real threats like Late Blight and Coffee Berry Disease.
- IoT device discovery on local WiFi — no cloud MQTT broker, no device provisioning portal. The technician opens the page, clicks "Scan Network," and the ESP32 shows up ready to read.
What we learned
- Start with the data model. Getting the Zone → Cooperative → Farm → Field hierarchy right early made everything else — APIs, role-based access, seed data, frontend navigation — fall into place naturally.
- Rule-based + AI beats AI alone. For high-stakes domains like agriculture, deterministic rules provide the reliability foundation. AI adds accessibility by turning structured data into plain-language advice that any farmer can understand.
- Realistic seed data catches real bugs. Using actual Rwandan GPS coordinates, regional crop varieties, and varied soil conditions in our test data exposed edge cases in the recommendation logic that synthetic data would have missed.
- IoT prototyping is unpredictable. Sensor calibration, WiFi connectivity, and power management each took longer than expected. Building both IoT and manual entry paths into the reading flow was essential — you need a working demo even when the hardware misbehaves.
- USSD is harder than it looks. Designing a useful interface with no visuals, strict character limits, and timeout pressure is a UX challenge that forced us to think deeply about information hierarchy.
What's next for UmuhinziConnect
- Real USSD/SMS gateway integration (Africa's Talking) for actual farmer delivery across Rwanda's mobile networks
- Offline-first mobile app for technicians working in rural areas with intermittent connectivity
- Historical trend analysis to track soil health degradation or improvement across multiple growing seasons
- Kinyarwanda language support throughout the entire web interface, not just the USSD channel
- Multi-sensor field mapping — deploying multiple ESP32 devices per field for spatial soil analysis and precision fertilizer application zones
- Integration with Rwanda Agriculture Board (RAB) extension services for validated, region-specific crop advisories
Log in or sign up for Devpost to join the conversation.