# AlgeriaAgri
Precision-agriculture platform for Algerian farms (Mitidja pilot). ESP32 sensor nodes post soil
readings every 30 minutes; an ML model turns them into a daily irrigation recommendation
(**IRRIGATE / WAIT / ALERT**); farmers see it in an Arabic-first Android app, and the team monitors
everything in a web dashboard.
## Monorepo layout
| Folder | Component | Stack |
|---|---|---|
| `backend/` | REST API + ingestion + ML pipeline | FastAPI · PostgreSQL/TimescaleDB · Celery/Redis |
| `dashboard/` | Team/agronomist web dashboard | React 18 · Vite · TypeScript (Phase 4) |
| `mobile/` | Farmer Android app, Arabic RTL | Flutter 3.x (Phase 5) |
| `docs/` | Specs and UI mockup (confidential `.docx` files are not committed) | — |
See `CLAUDE.md` for the architecture, non-negotiable rules, and the phase-by-phase roadmap.
## Backend quickstart
```bash
cd backend
cp env.example .env # then edit secrets
docker-compose up -d db redis # TimescaleDB + Redis
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
alembic upgrade head # create tables + hypertable
uvicorn app.main:app --reload # API →
127.0.0.1
celery -A app.tasks worker --loglevel=info # worker (separate terminal)
pytest # run tests
```