AgriGuard is an agricultural intelligence system designed to improve food security in Uganda by forecasting crop prices, detecting counterfeit seeds and agro-inputs, and providing market risk insights. It supports farmers and government with data-driven decisions to increase productivity, income stability, and market transparency.
# 🌾 AgriGuard
> **Agricultural intelligence for Uganda** — crop price conveyance, crop price forecasting (using quant strategies), market intelligence, and weather insights & forecasts for smallholder farmers, delivered via a mobile app (Android and iOS), a desktop app (Windows and Linux), and a USSD interface for feature phones.
Built by **Keith Ndiema Kissa** (2025/BCS/101/PS) · Mbarara University of
Science and Technology, Uganda
## Objectives
AgriGuard exists to serve four things, and nothing else:
1. **Crop price conveyance** — get price data to farmers on whatever device they have (app, desktop, or a feature phone via USSD)
2. **Crop price prediction / forecasting** — XGBoost and Prophet forecasting per crop and market
3. **Market intelligence** — cross-market comparisons, arbitrage signals, biggest movers, national summaries
4. **Weather insights & forecasts** — historical and forecast weather, conveyed alongside price signals
## Status at a glance
| Layer | State |
|---|---|
| FastAPI backend — forecasts, markets, USSD | **Working.** Wired into `main.py`, backed by the committed WFP CSV. |
| Streamlit dashboard | **Working.** Reads from the backend over HTTP. |
| Price forecasting (XGBoost / Prophet) | **Working**, trainable via `scripts/train_models.py`. |
| `prices` router (CRUD price observations, MySQL-backed) | **Not wired in.** See Known Issues. |
| Weather data collection | **Working as a standalone script**, not yet joined into the forecasting features. See `data/README.md`. |
| `quant/` package | **Scaffold only** — empty files, shared discipline with Vestora's quant module, not yet implemented. |
| `mobile/` (Flutter), `desktop/` (Tauri), `shared/api-client/` | **Scaffold only** — directory structure and dependency manifests exist; no implementation yet. |
This section exists so the rest of the README doesn't have to hedge every
claim — anything described below as working, is working; anything listed
above as scaffold is described that way …