Skip to content

Commit 453a768

Browse files
committed
docs: align README and ROADMAP with 3-layer strategic architecture
- Expand Platform Vision → Strategic Architecture with Layer A/B/C tables showing current state and next steps - Restructure Future Ideas by architecture layer (Observation, Intelligence, Delivery) instead of ad-hoc categories - Add architecture diagram (ASCII box) to both files - Reorganize README Feature Overview into Layer A/B/C sections - Add link to docs/architecture.md for full strategic detail - Refine vision/mission positioning statement
1 parent 8a44977 commit 453a768

2 files changed

Lines changed: 169 additions & 71 deletions

File tree

README.md

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ Open source self-hostable and reproducible Crop Intelligence Platform
3030

3131
</div>
3232

33-
**Vision:** A world where every farm, from smallholders to enterprises, can access transparent, trustworthy, and affordable digital farming intelligence.
33+
**OpenFarm is an open, modular field intelligence platform that fuses satellite, weather, soil, and time to explain what is happening in a field — and why.**
3434

35-
**Mission:** Build and maintain an open, reproducible crop intelligence platform that turns satellite, weather, sensor and field data into actionable insights, with modular workflows for scouting, operations, and analytics — deployable anywhere (self-hosted or hosted).
35+
- **Vision:** A world where every farm, from smallholders to enterprises, can access transparent, trustworthy, and affordable digital farming intelligence.
36+
- **Mission:** Build and maintain an open, reproducible crop intelligence platform that turns satellite, weather, soil, and field data into actionable insights — deployable anywhere (self-hosted or hosted).
3637

3738
## Why OpenFarm
3839
- Self-hostable stack with clear service boundaries (Next.js ↔ FastAPI ↔ TiTiler ↔ MinIO ↔ PostGIS)
@@ -52,13 +53,36 @@ Open source self-hostable and reproducible Crop Intelligence Platform
5253
- Google OAuth credentials (`GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`)
5354

5455
## Architecture
56+
57+
OpenFarm follows a 3-layer strategic architecture:
58+
59+
```
60+
┌─────────────────────────────────────────────────────────────────┐
61+
│ Layer C — Delivery Surfaces (Distribution) │
62+
│ Map UI · Reports · API · Webhooks · MCP · Mobile scouting │
63+
├─────────────────────────────────────────────────────────────────┤
64+
│ Layer B — Intelligence Engine (Moat) │
65+
│ Phenology · Anomaly detection · Stress signals · Yield │
66+
│ Risk models · Soil-derived insights · Explainability │
67+
├─────────────────────────────────────────────────────────────────┤
68+
│ Layer A — Observation Infrastructure (Data Gravity) │
69+
│ Satellite · Weather · Soil · Field boundaries · Sensors │
70+
└─────────────────────────────────────────────────────────────────┘
71+
```
72+
73+
- **Layer A** collects, standardizes, and stores raw signals (satellite imagery, weather, soil profiles, field boundaries)
74+
- **Layer B** transforms observations into explainable, agronomically meaningful insights with confidence scores
75+
- **Layer C** delivers intelligence through maps, reports, APIs, and integrations
76+
77+
**Tech stack:**
5578
```
5679
apps/web/ → Next.js 14 + NextAuth (Google OAuth) + Tailwind + shadcn/ui + MapLibre + ECharts
57-
services/api/ → FastAPI + SQLAlchemy 2.0 (async) + Alembic + Celery tasks (NDVI/EVI/SAVI/NDWI)
80+
services/api/ → FastAPI + SQLAlchemy 2.0 (async) + Alembic + Celery tasks
5881
services/tiler/ → TiTiler COG tile server (shared JWT auth)
5982
docker-compose.yml → Postgres/PostGIS, Redis, MinIO, API, Celery worker, TiTiler, Web
6083
```
61-
**Critical rule:** Next.js talks to Postgres **only** for user upsert during NextAuth auth callback (`apps/web/src/lib/db.ts`). All other data flows through the FastAPI API via `apps/web/src/lib/api.ts`.
84+
85+
See [docs/architecture.md](docs/architecture.md) for the full strategic architecture document.
6286

6387
## Quick Start (Full Stack via Docker)
6488
```bash
@@ -143,16 +167,26 @@ ruff format --check .
143167
- Audit events on key actions (e.g., field_created)
144168

145169
## Feature Overview
146-
- **Auth**: Google OAuth via NextAuth → JWT bridge (`/api/auth/token`)
147-
- **Orgs & RBAC**: owner/admin/member/viewer with audit logging
148-
- **Farms & Fields**: draw/upload GeoJSON/KML, area calc, soft delete
149-
- **Vegetation Monitoring**: NDVI, EVI, SAVI (configurable L factor), NDWI — STAC search → COG → TiTiler tiles → time-series stats, with automatic 24-month historical backfill on field creation and weekly auto-compute
150-
- **Boundary Detection**: automatic field boundary detection from Sentinel-2 imagery using FTW deep learning model — draw area, review results, accept as fields
151-
- **Weather Integration**: daily historical + 7-day forecast weather data per field — temperature, precipitation, ET₀, soil moisture/temperature, VPD, GDD, water balance, drought index
152-
- **Soil Intelligence**: automatic soil profile from SoilGrids/POLARIS — texture-by-depth visualization, pH, organic carbon, CEC, bulk density, AWC, risk scoring (acidification, compaction, leaching, rooting), data quality indicators
153-
- **Per-Index Alerts**: configurable threshold and drop-percentage rules, enriched with weather context
154-
- **Scouting**: geotagged observations with optional photo upload and auto-attached weather snapshot
155-
- **Sharing**: read-only field health reports via share links with multi-index toggle and weather summary
170+
171+
### Layer A — Observation
172+
- **Satellite Intelligence**: NDVI, EVI, SAVI (configurable L), NDWI from Sentinel-2 — STAC search → COG → TiTiler tiles → time-series stats, with automatic 24-month historical backfill and weekly auto-compute
173+
- **Weather Intelligence**: daily historical + 7-day forecast via Open-Meteo — temperature, precipitation, ET₀, soil moisture/temperature, VPD, GDD, water balance, drought index
174+
- **Soil Intelligence**: automatic soil profile from SoilGrids (global, 250m) and POLARIS (US, 30m) — texture-by-depth, pH, organic carbon, CEC, bulk density, AWC, risk scoring, data quality indicators
175+
- **Boundary Detection**: ML-powered field boundary detection (FTW model) from Sentinel-2 — draw area, review with confidence scores, accept as fields
176+
- **Farms & Fields**: draw/upload GeoJSON/KML polygons, auto area calculation, soft delete
177+
178+
### Layer B — Intelligence
179+
- **Per-Index Alerts**: configurable threshold and drop-percentage rules, enriched with weather context and soil data
180+
- **Risk Scoring**: acidification, compaction, leaching, and rooting risk from soil properties
181+
- **Multi-Signal Context**: alerts combine vegetation anomalies + weather conditions + soil characteristics
182+
183+
### Layer C — Delivery
184+
- **Interactive Map**: MapLibre + PMTiles (no Mapbox needed), multi-layer toggle, per-index colormaps
185+
- **Time-Series Charts**: ECharts with percentile bands, NDVI + weather overlay, soil depth visualization
186+
- **Scouting**: geotagged observations with photo upload and auto-attached weather snapshot
187+
- **Sharing**: read-only field health reports via share links with multi-index, weather, and soil summary
188+
- **Auth & RBAC**: Google OAuth → JWT bridge, owner/admin/member/viewer roles, audit logging
189+
- **i18n**: English + Spanish, dark/light theme
156190
- **Changelog**: in-app changelog page with version history
157191

158192
## Quality & CI

0 commit comments

Comments
 (0)