Transform agricultural data into actionable intelligence for African farmers through satellite imagery, AI plant diagnostics, and predictive analytics.
Atlas Core is an intelligent geospatial platform designed to empower African farmers with data-driven decision-making. It combines:
- πΈ AI Plant Diagnostics - Photograph plants, get instant disease detection
- π°οΈ Satellite Field Monitoring - NDVI-based crop health visualization
- π‘ Smart Recommendations - AI-powered irrigation, fertilizer, pest control advice
- π€οΈ Weather Intelligence - Agricultural forecasts and alerts
- π Historical Analytics - Track field performance over time
Current Status: β Phase 2 MVP - 75% Complete | Auth + Camera + Recommendations Working
npm install
cp .env.example .env.local
# Add Supabase credentialsnpm run seed:test-datanpm run dev
# Open http://localhost:5000Create account β Click "Atlas Agri" β Explore modules
π Full setup guide: QUICKSTART.md
| Document | Purpose | Read Time |
|---|---|---|
| QUICKSTART.md | Setup + testing | 10 min |
| PROJECT_STATUS.md | Current progress + blockers | 15 min |
| CLAUDE.md | Architecture principles | 20 min |
| CHANGELOG.md | Commit history | 10 min |
| CAMERA_SATELLITE_SETUP.md | API integration guide | 30 min |
π New to this project? Start with QUICKSTART.md
- β Authentication - Login/signup with Supabase + VIP admin access code
- β Recommendations - Load real data from database, filter by category, mark complete
- β Plant Scanning - Camera capture + OpenAI Vision AI diagnosis (with mock fallback)
- β Sidebar Navigation - 6-section AgriModule with smooth animations
- β
Test Data -
npm run seed:test-datacreates 2 farms + 4 parcels + 3 scans + 5 recommendations - β Services Layer - All Supabase queries properly abstracted
- β State Management - Zustand stores for auth + agricultural data
- β TypeScript + Theme - Strict types, responsive design, professional animations
- β³ Photo Upload - Camera captures images, NOT yet uploaded to Supabase storage (HIGH PRIORITY)
- β³ Weather Forecast - UI 100% complete, API integration needs real OpenWeatherMap wiring
- β³ Satellites/NDVI - Map UI ready, needs real Sentinel Hub data integration
- β³ Dashboard - UI skeleton complete, needs real farm/parcel data binding
- β³ Scan History - UI structure ready, needs data connection
Full details: PROJECT_STATUS.md | Audit: CODE_AUDIT_2026-05-28.md
UI Components (React Native)
β calls store actions
Zustand Stores (authStore, agriStore)
β triggers service calls
Services Layer (Business logic + API calls)
β queries
External APIs (Supabase, OpenAI, Weather, Satellites)
Key Principles:
- β Services handle all API calls
- β Stores handle state + errors
- β Components display data only
- β Everything strictly typed
See CLAUDE.md for full architecture.
| Module | Status | What It Does |
|---|---|---|
| Tableau de bord | 50% | Farm overview structure ready, needs real data binding |
| Carte du champ | 55% | Interactive NDVI grid UI ready, needs Sentinel Hub API |
| Scan de plante | 85% β | Camera capture + AI diagnosis working, photo upload TODO |
| Recommandations | 100% β | Load from DB, filter, mark complete β fully functional |
| MΓ©tΓ©o agricole | 60% | UI 100% complete, weather API needs real integration |
| Historique | 50% | UI structure ready, needs to load real scan history |
EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=eyJhbGc...# Required
EXPO_PUBLIC_SUPABASE_URL=...
SUPABASE_ANON_KEY=...
# Optional (falls back to mock if not provided)
OPENAI_API_KEY=sk-proj-... # Plant diagnosis
EXPO_PUBLIC_WEATHER_API_KEY=... # Weather forecast
EXPO_PUBLIC_SENTINEL_HUB_TOKEN=... # Satellite data (Sentinel Hub)
# Optional compatibility alias:
# SENTINEL_HUB_TOKEN=... # Satellite data (legacy)Get API keys:
- Supabase: https://supabase.com
- OpenAI: https://platform.openai.com (requires payment)
- OpenWeatherMap: https://openweathermap.org (free tier)
- Sentinel Hub: https://sentinelhub.com (free tier)
Pre-seeded realistic data for demo:
npm run seed:test-dataCreates:
- 2 Farms: Kayes (Mali) + Bamako (Mali)
- 4 Parcels: Different crops + health scores
- 3 Scans: Plant diagnostics with confidence scores
- 5 Recommendations: Urgent to low priority
Perfect for testing without external APIs.
# 1. Read current status
cat PROJECT_STATUS.md
# 2. Make changes
npm run typecheck # Check types
npm run lint # Check style
# 3. Test locally
npm run dev
# 4. Commit using conventional commits
git commit -m "feat: Add real satellite integration"
git commit -m "fix: Correct weather API"
git commit -m "docs: Update README"
# 5. Update docs
# - CHANGELOG.md (what changed)
# - PROJECT_STATUS.md (progress update)npm run dev # Start dev server (web)
npm run dev:ios # iOS simulator
npm run dev:android # Android emulator
npm run typecheck # TypeScript validation
npm run lint # Code style check
npm run seed:test-data # Load test data
npm run build:web # Production web build| Issue | Severity | Timeline |
|---|---|---|
| Photos not uploading to Supabase storage | Medium | This week |
| Satellite NDVI currently mock data | Medium | This week |
| Weather not displayed in UI | Low | This week |
| Dashboard not showing live data | Low | Next week |
See PROJECT_STATUS.md for details.
-
Real Satellite NDVI (3-4h)
- Fetch from Sentinel Hub
- Update map to show real grid
-
Weather Display (1-2h)
- Wire AgriMeteo to store
- Show forecast
-
Photo Upload (2h)
- Store camera photos to Supabase
- Dashboard Connections (2-3h)
- Performance Optimization (2h)
- Error Handling (2h)
Full roadmap: PROJECT_STATUS.md
atlas-core/
βββ app/ # Expo Router navigation
βββ components/
β βββ agri/ # Atlas Agri modules
β β βββ AgriScan.tsx # Camera + AI diagnosis β
β β βββ AgriRecommandations.tsx # Real data β
β β βββ AgriNDVIMap.tsx # Satellite visualization
β β βββ AgriMeteo.tsx # Weather
β β βββ AgriDashboard.tsx # Dashboard
β β βββ AgriHistorique.tsx # History
β βββ auth/ # Login/signup screens
β βββ hub/ # Module selection
βββ lib/
β βββ services/
β β βββ auth.ts # Supabase Auth
β β βββ plantDiagnosis.ts # OpenAI Vision β
β β βββ farms.ts, parcels.ts, scans.ts...
β β βββ index.ts
β βββ stores/
β β βββ authStore.ts # User auth state β
β β βββ agriStore.ts # Agricultural data β
β βββ types.ts # TypeScript interfaces
β βββ theme.ts # Design tokens
β βββ env.ts # Environment validation
βββ scripts/
β βββ seed.ts # Test data seeding β
βββ supabase/
β βββ migrations/ # Database schema
βββ docs/
β βββ QUICKSTART.md # Setup guide β
β βββ PROJECT_STATUS.md # Progress tracking β
β βββ CAMERA_SATELLITE_SETUP.md # Integration guide β
β βββ CHANGELOG.md # Commit history β
βββ CLAUDE.md # Architecture β
βββ package.json
- Frontend: React Native 0.81 + Expo 54
- Navigation: Expo Router
- State: Zustand
- Database: Supabase (PostgreSQL + Auth + Storage)
- Language: TypeScript
- Styling: React Native StyleSheet + theme tokens
- Icons: Lucide React Native
- Validation: Zod
- β Row-level security (RLS) on all tables
- β Secure token storage (encrypted on mobile + web)
- β Input validation + sanitization
- β Audit log for compliance
- β HTTPS-only Supabase
- β Environment variable validation
- Supabase: https://supabase.com/docs
- Expo: https://docs.expo.dev
- React Native: https://reactnative.dev
- TypeScript: https://www.typescriptlang.org
- OpenAI Vision: https://platform.openai.com/docs/guides/vision
- Sentinel Hub: https://docs.sentinel-hub.com
-
Read (in order):
- This README
- QUICKSTART.md
- CLAUDE.md
-
Setup:
npm install cp .env.example .env.local # Add credentials npm run seed:test-data npm run dev -
Explore:
- Click through UI
- Open DevTools (F12)
- Read the code (stores β services β components)
-
Understand (in order):
- How Zustand stores work
- How services call Supabase
- How components read stores
- The architecture flow
-
Build:
- Start with small changes
- Use conventional commits
- Update docs after work
- Test before pushing
Phase 1: Foundation β
COMPLETE
Phase 2: MVP π 75% COMPLETE (Current Sprint)
ββ Auth β
ββ Recommendations β
ββ Camera + AI β
ββ Test Data β
ββ Satellites β³
ββ Weather β³
ββ Dashboard β³
Phase 3: Backend Logic π
Phase 4: Testing & Deploy π
Phase 5: Other Modules π
- Create a feature branch:
git checkout -b feat/your-feature - Make changes following CLAUDE.md guidelines
- Run checks:
npm run typecheck && npm run lint - Commit:
git commit -m "feat: Your feature" - Update docs before pushing
- Push:
git push
MIT License - see LICENSE for details
- Founder/Lead Developer: Ghostofshadoow (@ghostofshadoow)
Building Africa's future, one field at a time. πΎ
Last Updated: 2026-05-28 | Phase: 2 MVP - 75% Complete