Bilingual crop advice and market prices for African formers
# 🌱 AfriCrop
**Crop advice and market prices for African farmers, in English and French.**
AfriCrop is a mobile-first web app that gives smallholder farmers practical,
location-aware guidance: a live local weather forecast, plain-language advice on
when to plant and water their crop, pest watch-outs, and current market prices.
The whole interface works in both English and French.
This repository is a focused, working slice of a larger agricultural super-app
concept. It is built to demonstrate a real full-stack architecture rather than a
single-file demo.
> ⚠️ The advice is general guidance for a prototype. It is not a substitute for
> local agricultural extension services, and the UI says so.
---
## ✨ What it does
- **Find your location** by search (any town/city) or one-tap geolocation.
- **Pick a crop** from common African staples (maize, cassava, beans, tomato, rice, sorghum).
- **See live weather** for the next 7 days, pulled from the Open-Meteo API.
- **Get crop advice**: planting window, irrigation guidance, and pest watch, all
computed from the real forecast by a dedicated Python rules engine.
- **Check market prices** across regional markets, with price trends.
- **Switch language** between English and French instantly — both are first-class.
---
## 🧱 Architecture
AfriCrop is built as three small services, which is how real products are
structured (separation of concerns, independent scaling, language-appropriate
tools for each job):
```
┌─────────────────┐ ┌──────────────────────┐ ┌────────────────────────┐
│ React frontend │ ───▶ │ Node API gateway │ ───▶ │ Python advice service │
│ (Vite, mobile) │ │ (Express) │ │ (FastAPI rules engine) │
└─────────────────┘ └──────────────────────┘ └────────────────────────┘
│ │
│ geocoding │ live forecast
▼ ▼
Open-Meteo (geocode) Open-Meteo (weather)
```
- **`frontend/`** — React + Vit …