FarmIQ β AI-powered super-app for African smallholder farmers. Crop disease diagnosis via photo, weather forecasts, market prices, and tool sharing. Built with Gemini AI and runs on low-end phones. Free and open source.
# π± FarmIQ β The African Farmer's Super-App
One app that replaces the need for an agronomist, a weather station, a market trader, and a farming advisor β powered by **Gemini AI**, working across Africa on low-end phones.
---
## β¨ Features (Built with Gemini AI)
| Module | Status | Tech |
|--------|--------|------|
| π¬ **AI Crop Doctor** | β
Ready | Gemini Vision API β snap photo β diagnosis + treatment |
| βοΈ **Weather Forecast** | β
Ready | Open-Meteo + alerts (heavy rain, heat, drought risk) |
| πΎ **Grow & Yield** | β
Ready | Planting calendar, care reminders, crop rotation, post-harvest tips |
| π **Market Prices** | π§ͺ Demo | Placeholder β hook up crowdsourced data |
| π **Tool Sharing** | β
Ready | List/book tractor, sprayer, harvester, pump β GPS, ratings |
| ποΈ **Voice Assistant** | β
Ready | Speak β Gemini answers β spoken reply (Hausa, Yoruba, Igbo, Pidgin, French, Arabic, Swahili) |
| π₯ **Farmer Community** | π Planned | Supabase-backed forum |
---
## π Quick Start
### 1. Get a Gemini API Key (Free)
1. Go to Google AI Studio
2. Sign in with your Google account
3. Click **Create API Key**
4. Copy the key
### 2. Clone & Install
```bash
cd FarmIQ
cp .env.example .env
# Edit .env and add: GEMINI_API_KEY=your_key_here
npm install
```
### 3. Run
```bash
npm run dev
```
- **Frontend**:
localhost
- **API**:
localhost
### 4. Demo the Crop Doctor
1. Open
localhost
2. Go to **Crop Doctor**
3. Upload a photo of a plant leaf (or any crop image)
4. Select crop type (maize, cassava, yam, cocoa, sorghum, rice)
5. Click **Diagnose** β Gemini AI analyzes and returns diagnosis + treatment plan
---
## π Project Structure
```
FarmIQ/
βββ server/ # Backend (Express)
β βββ index.js # API entry
β βββ routes/
β βββ crop-doctor.js # Gemini Vision for crop diagnosis
β βββ weather.js # Open-Meteo integration
β βββ market.js # Market prices (demo)
βββ src/ β¦