How devxankanofcode/cropswitch works
CropSwitch is a crop and field management application prototype with a React interface and a Django backend for satellite-data analysis. The user-facing workflow covers accounts, field registration and maps, NASA-data views, risk analysis, crop recommendations, and reports. In the backend, request handlers dispatch to data loading and domain engines; the engines compute risk, alerts, and crop suitability from bundled datasets. The sampled sources show no frontend-to-backend connection, and dashboard data explicitly identifies itself as demo data, so the two sides are shown separately.
Main entry points: App.jsx Route application · data_loader.py Dataset loader · views.py Request handlers · risk_engine.py Risk analysis engine
Components 27
Web application
- Route application
src/App.jsx - Workspace shell
src/components/layout/MainLayout.jsx - Workspace header
src/components/layout/Header.jsx
Farm workspace
- Landing page
src/pages/LandingPage.jsx - Sign in and register
src/pages/Login.jsx - Dashboard
src/pages/Dashboard.jsx - Dashboard demo data
src/data/dashboardData.js - Field management
src/pages/FieldManagement.jsx - Field map
src/components/FieldMap.jsx - Account management
src/pages/Accounts.jsx
Analysis features
- NASA data view
src/pages/NASADataIntegration.jsx - Risk analysis view
src/pages/RiskAnalysis.jsx - Crop rotation view
src/pages/CropRotation.jsx - Recommendations view
src/pages/Recommendations.jsx - Reports view
src/pages/Reports.jsx
Backend API
- API routes
backend/core/urls.py - Request handlers
backend/core/views.py
Analysis engines
- Dataset loader
backend/core/data_loader.py - Risk analysis engine
backend/core/risk_engine.py - Crop suitability engine
backend/core/crop_engine.py - Environmental alerts
backend/core/alert_engine.py
Satellite datasets
- SMAP data
backend/datasets/smap_data.py - NDVI data
backend/datasets/nvdi_data.py - GPM rainfall data
backend/datasets/gpm_data.py - GRACE water data
backend/datasets/grace_data.py - POWER weather data
backend/datasets/power_data.py
Other components
- User
Connections 28
- User → Route application: opens
src/App.jsx - Route application → Landing page: routes to
src/App.jsx - Route application → Sign in and register: routes to
src/App.jsx - Route application → Workspace shell: wraps workspace
src/App.jsx - Route application → Dashboard: routes to
src/App.jsx - Route application → Field management: routes to
src/App.jsx - Route application → Account management: routes to
src/App.jsx - Route application → NASA data view: routes to
src/App.jsx - Route application → Risk analysis view: routes to
src/App.jsx - Route application → Crop rotation view: routes to
src/App.jsx - Route application → Recommendations view: routes to
src/App.jsx - Route application → Reports view: routes to
src/App.jsx - Workspace shell → Workspace header: renders
src/components/layout/MainLayout.jsx - Dashboard → Dashboard demo data: reads
src/pages/Dashboard.jsx - Field management → Field map: renders
src/pages/FieldManagement.jsx - API routes → Request handlers: routes requests
backend/core/urls.py - Request handlers → Dataset loader: loads datasets
backend/core/views.py - Request handlers → Risk analysis engine: requests risk analysis
backend/core/views.py - Request handlers → Crop suitability engine: requests recommendations
backend/core/views.py - Request handlers → Environmental alerts: requests alerts
backend/core/views.py - Crop suitability engine → Dataset loader: loads datasets
backend/core/crop_engine.py - Risk analysis engine → Dataset loader: loads datasets
backend/core/risk_engine.py - Environmental alerts → Risk analysis engine: analyzes risks
backend/core/alert_engine.py - Dataset loader → SMAP data: loads records
backend/core/data_loader.py - Dataset loader → NDVI data: loads records
backend/core/data_loader.py - Dataset loader → GPM rainfall data: loads records
backend/core/data_loader.py - Dataset loader → GRACE water data: loads records
backend/core/data_loader.py - Dataset loader → POWER weather data: loads records
backend/core/data_loader.py