How darshantribhuwan/cep-project works
SAMPADA AI is a decision-support backend for Maharashtra smallholder farmers. Its main workflow is farmer authentication and farm setup, followed by soil and crop suitability analysis and recommendations, with live weather and market context; farmers can then record harvest outcomes for held-out evaluation and gated model promotion. Separate capabilities include localized package-of-practices guidance, security and retention, and honest provider-data handling. The README documents these capabilities; several route and service implementations were not excerpted, so their detailed call paths are not asserted.
Main entry points: main.py HTTP application · recommendation.py Recommendation scoring · farms.py Farm records · evaluation.py Evaluation API
Components 30
API and identity
- HTTP application
sampada-ai/backend/app/main.py - Authentication
sampada-ai/backend/app/api/auth.py - Farm management
sampada-ai/backend/app/api/farmer.py - Recommendation API
sampada-ai/backend/app/api/recommendation.py - Soil API
sampada-ai/backend/app/api/soil.py - Weather API
sampada-ai/backend/app/api/weather.py - Market API
sampada-ai/backend/app/api/market.py - Outcomes API
sampada-ai/backend/app/api/outcomes.py - Evaluation API
sampada-ai/backend/app/api/evaluation.py
Farm decision support
- Soil estimation
sampada-ai/backend/app/services/soil.py - Crop suitability
sampada-ai/backend/app/services/suitability.py - Crop knowledge
sampada-ai/backend/app/services/crops.py - Recommendation scoring
sampada-ai/backend/app/services/recommendation.py - Practices and localization
sampada-ai/backend/app/services/community.py - Price analysis
sampada-ai/backend/app/services/price.py
External data
- Weather provider
sampada-ai/backend/app/providers/weather.py - Market provider
sampada-ai/backend/app/providers/market.py - HTTP cache and retry
sampada-ai/backend/app/providers/http.py
Outcomes and evaluation
- Harvest outcomes
sampada-ai/backend/app/api/outcomes.py - Held-out evaluation
sampada-ai/backend/app/evaluation/heldout.py - Factor evidence
sampada-ai/backend/app/evaluation/factor_evidence.py - Promotion gates
sampada-ai/backend/app/evaluation/promotion.py
Persistence and safeguards
- Farm records
sampada-ai/backend/app/repositories/farms.py - Farmer accounts
sampada-ai/backend/app/repositories/farmers.py - SQLite persistence
sampada-ai/backend/app/core/db.py - Encryption and config
sampada-ai/backend/app/core/crypto.py - Retention policy
sampada-ai/backend/app/core/retention.py
Other components
- Farmer
- data.gov.in
- Open-Meteo
Connections 40
- Farmer → HTTP application: uses
README.md - HTTP application → Authentication: routes
sampada-ai/backend/app/main.py - HTTP application → Farm management: routes
sampada-ai/backend/app/main.py - HTTP application → Recommendation API: routes
sampada-ai/backend/app/main.py - HTTP application → Soil API: routes
sampada-ai/backend/app/main.py - HTTP application → Weather API: routes
sampada-ai/backend/app/main.py - HTTP application → Market API: routes
sampada-ai/backend/app/main.py - HTTP application → Outcomes API: routes
sampada-ai/backend/app/main.py - HTTP application → Evaluation API: routes
sampada-ai/backend/app/main.py - Authentication → Farmer accounts: authenticates
sampada-ai/backend/app/api/auth.py - Farm management → Farm records: manages
sampada-ai/backend/app/api/farmer.py - Farm records → SQLite persistence: persists
sampada-ai/backend/app/repositories/farms.py - Farm records → Encryption and config: encrypts locations
sampada-ai/backend/app/repositories/farms.py - Farmer accounts → SQLite persistence: persists
sampada-ai/backend/app/repositories/farmers.py - Farmer accounts → Encryption and config: protects identifiers
sampada-ai/backend/app/repositories/farmers.py - Soil API → Soil estimation: estimates
- Recommendation API → Recommendation scoring: requests scoring
- Recommendation scoring → Crop suitability: scores suitability
sampada-ai/backend/app/services/recommendation.py - Recommendation scoring → Crop knowledge: uses crop data
sampada-ai/backend/app/services/recommendation.py - Recommendation scoring → Soil estimation: uses soil estimate
sampada-ai/backend/app/services/recommendation.py - Recommendation scoring → Price analysis: uses price analysis
sampada-ai/backend/app/services/recommendation.py - Recommendation scoring → Farm records: reads farm
sampada-ai/backend/app/services/recommendation.py - Recommendation scoring → Practices and localization: uses guidance
sampada-ai/backend/app/services/recommendation.py - Crop suitability → Crop knowledge: uses crop data
sampada-ai/backend/app/services/suitability.py - Crop suitability → Weather provider: uses forecast
sampada-ai/backend/app/services/suitability.py - Weather API → Weather provider: requests forecast
- Market API → Market provider: requests prices
- Price analysis → Market provider: fetches prices
sampada-ai/backend/app/services/price.py - Market provider → data.gov.in: fetches feed
sampada-ai/backend/app/providers/market.py - Weather provider → Open-Meteo: fetches forecast
README.md - Market provider → HTTP cache and retry: fetches via
sampada-ai/backend/app/providers/market.py - Weather provider → HTTP cache and retry: fetches via
sampada-ai/backend/app/providers/weather.py - Outcomes API → Farm records: records harvest
- Evaluation API → Held-out evaluation: evaluates
sampada-ai/backend/app/api/evaluation.py - Evaluation API → Factor evidence: builds evidence
sampada-ai/backend/app/api/evaluation.py - Factor evidence → Held-out evaluation: supplies factors
sampada-ai/backend/app/evaluation/factor_evidence.py - Evaluation API → Promotion gates: checks promotion
sampada-ai/backend/app/api/evaluation.py - Promotion gates → Held-out evaluation: gates on evaluation
sampada-ai/backend/app/evaluation/promotion.py - Promotion gates → SQLite persistence: stores decisions
sampada-ai/backend/app/evaluation/promotion.py - Retention policy → SQLite persistence: purges configured data
sampada-ai/backend/app/core/retention.py