AI-Powered Market, Weather & Crop Health Assistant for Uganda's Smallholder Farmers
NigelFarmLink
AI-Powered Market, Weather & Crop Health Assistant for Uganda's Smallholder Farmers
---
Nigel Farm Link by Elijah Senabulya
## Executive Summary
NigelFarmLink is a desktop application designed to provide smallholder farmers in Uganda with a single, offline-first hub for regional market prices, weather forecasts, crop/animal health diagnosis, and farming tips. Built to operate without consistent internet, it leverages AI (Google Gemini) only when connectivity is available, ensuring essential services remain accessible under all conditions.
## Key Features
### 📊 Dashboard
- One-glance regional snapshot.
- One-click "Generate PDF Report" (combining weather, prices, trends, and monitoring logs).
### 💰 Prices
- Regional market prices with Luganda translation.
- 7-day trend visualisation using `matplotlib`.
### 🌦️ Weather
- Offline fallback to last saved forecast.
- Live updates via Open-Meteo API when connected.
- Rule-based farming tips (no AI needed).
### 🌿 Crop & Animal Health
- **Ask Nigel:** Local database search for crop/animal issues.
- **AI Diagnosis:** Vision-based diagnosis via Gemini API (grounded in local data).
- **Monitoring Log:** Track observations per region.
### 👥 Farmer Talk
- Regional community message board (File-based implementation).
---
## Technology Stack
| Layer | Technology | Purpose |
| :--- | :--- | :--- |
| **Language** | Python 3 | Core application logic |
| **GUI** | `tkinter` | Offline-first desktop interface |
| **Data Handling** | `pandas` | CSV data processing |
| **Charts** | `matplotlib` | Price trend visualization |
| **Reporting** | `reportlab` | PDF farm report generation |
| **Vision/AI** | Gemini API | Photo diagnosis & research |
| **Weather** | Open-Meteo API | Live forecast data |
---
## AI Integration: Graceful Degradation
NigelFarmLink utilises the **Gemini 2.5 Flash** model. We follow a "graceful degradation" philosophy:
1. **No Internet?** No problem. The app relies on its local CSV database. …