ASAgriSense/Docs/Programs

Module 5

Sustainability Programs

Purpose#

Defines, delivers, and evidences sustainability interventions across the farmer base. Program data contributes to EUDR compliance evidence packages — demonstrating that the organisation is actively supporting farmers in maintaining sustainable practices.

Program hierarchy#

text
Program Type (template — seeded per org at setup)
└── Program (instance of a type, with dates, geography, and farmers)
    └── Activity (a specific event: training session, distribution, audit)
        ├── Attendance (list of farmers who attended)
        ├── Input Distribution (inputs given to farmers)
        └── Evidence (photos, documents uploaded to R2)

System program types#

Seven program types are seeded per organisation at setup. Custom types can be added.

TypeDescription
GAPGood Agricultural Practices — training and practice adoption.
CLMRSChild Labour Monitoring and Remediation System.
VSLAVillage Savings and Loan Associations.
CertificationFairtrade, Rainforest Alliance, Organic — preparation and maintenance.
AgroforestryTree planting and shade management programs.
Water & SanitationWASH programs for farming communities.
Gender & YouthInclusion and capacity-building programs.

Activities#

Activity typeKey fields
Training sessionDate, location, facilitator, topic, attendance list, photos.
Input distributionDate, input type, quantities per farmer, distribution point.
Field auditDate, auditor, checklist scores, findings, photos.
Community meetingDate, agenda, attendance, minutes (file upload).
CustomConfigurable per program type.

Evidence files#

Photos and documents are uploaded to Cloudflare R2 via presigned URLs. The API generates a presigned upload URL on request; the client uploads directly to R2 and sends back the file key. This keeps evidence files out of the API payload and allows large files.

Coverage metrics#

The coverage API aggregates program participation across the geographic hierarchy: % of farmers enrolled in a given program type, by community → district → region → org. Displayed on the Sustainability Programs dashboard view.

Packages#

PackageTypeKey exports
@repo/feature-sustainability-programsBackendServices: program-type, program, activity, attendance, input-distribution, coverage, evidence (presigned URL)
@repo/feature-sustainability-programs-webFrontendProgram CRUD, activity forms, attendance recording, input distribution, coverage chart

API routes#

RouteNotes
/api/program-typesCRUD for program type templates.
/api/programsCRUD for program instances.
/api/activitiesCRUD for activities under a program.
/api/attendanceBulk attendance recording.
/api/input-distributionsRecord input distributions.
/api/coverageAggregate coverage statistics.
/api/evidenceGenerate presigned R2 upload/download URLs.
EUDR evidence package
Activity records and uploaded evidence are included in EUDR evidence packages generated by the Compliance module. Sustainability activities demonstrate due diligence beyond the minimum geolocation requirement.