AMOMS digitizes the entire chain of sourcing fresh avocados for oil processing — replacing phone calls, paper gate registers, and manual QC logs. Every entity is threaded by reference IDs (PR · PO · SO · AG · GPN) that follow a load from requirement through contract, gate, weighbridge, quality control, and out to payment.
Each surface is pitched at its user and device — analysis on desktop, offers on a phone, ruggedised capture flows on gate and QC tablets.
Create requirements, broadcast to farmers, score & award offers, sign supply agreements, and manage payments.
Register, receive requirements, submit offers under the rate ceiling, confirm gate-in, e-sign, and track delivery & payment.
Scan QR gate passes, capture truck & driver, run the weighbridge (gross/tare), track on-site dwell, and confirm gate-out.
Inspect intake from a FIFO queue, run Dry-Matter / FFA / oil-content tests against a matrix, and approve, reject, or hold.
One load, one thread of reference IDs. Each entity is created by the step before it and carried forward, so a truck at the gate resolves back to the requirement that started it.
Requirement lifecycle
Offer / gate-in lifecycle
A real sequence — plan to payment — with each step tagged by the app that owns it. Colour marks the swimlane.
Procurement defines a requirement: variety (Hass / Fuerte / Pinkerton / Local), target quantity, acceptable variance, a rate ceiling (max KSh/kg), delivery window, and response deadline. Bulk creation covers a whole week's plan at once.
Select eligible farmers and preview the farmer-facing card — internal notes and reference codes are never shown — then send across App + SMS + WhatsApp. Example: PR-2026-0184 broadcast to 142 farmers.
The farmer responds with available quantity, a rate at or under the ceiling, a preferred and optional backup delivery date, and notes to the buyer.
Offers stream into a live dashboard, each scored 0–100 and tiered A / B / C by region, rate, and history. The manager sorts and compares, then accepts offers to fill the target — a live tracker shows “12,600 kg still to fill.” Partial allocation is supported (offered 4,000 kg → accepted 3,500 kg).
A digital contract lists awarded farmers in Schedule A and takes a dual e-signature — Plant Manager signs, lead farmer acknowledges, agreement complete.
The farmer confirms the delivery slot, which generates the QR gate pass (GPN) the gatekeeper will scan. A reschedule can be requested and is routed back to Admin for review.
Scan the QR pass (or manual entry with a supervisor override for mismatches / late arrivals), capture driver and truck, and run the verification checklist → status becomes Arrived. The weighbridge records gross weight with a mandatory printed-slip photo and an anti-fraud “truck is on the bridge” confirmation.
Intake enters a FIFO queue (oldest first, with a “degrades in the sun” prioritisation nudge). The inspector picks the QC type, runs sampling + parameters (Dry Matter %, FFA %, oil content), captures evidence photos and the IMTR checklist. A decision matrix recommends, and the inspector confirms Approve · Reject · Hold.
After a QC pass, tare weight yields net delivered kg. The truck moves through warehouse / loading; the gatekeeper confirms gate-out with a full dwell-time exit log.
Completed deliveries appear in Payments with Outstanding / Pending / In-process / Paid tiles. The manager updates status; payment settles via M-Pesa or bank transfer, and the farmer tracks it in-app.
Interactive flow diagram
Colour marks the owning app — green Admin · indigo Farmer · amber Gate · clay-red QC. Scroll horizontally on narrow screens.
This version tightened the gate-in → delivery → payment tail of the process.
What the prototype gets right, and the open questions worth resolving before a build.
All 80 screens, captured from the live prototype. Filter by app, then click any screen to enlarge — use ← / → to move through the set.