SKIP TO CONTENT
A/L
SYS_006LIVE

Dairy System

Milk Collection & Farmer Payout

Twice-daily collection with quality-based rates, deductions and cycle payouts to farmers.

TYPE
COLLECTION ERP
STATUS
LIVE
YEAR
ROLE
System design, implementation
PLATFORM
Flutter (Android), Node.js API
STACK
Flutter · Node.js · MySQL
01

PROBLEM

A collection centre takes milk from hundreds of farmers twice a day, every day. Rate depends on measured fat and quantity, advances and feed purchases are deducted, and everyone must be paid on a fixed cycle without dispute.

On paper this is an enormous amount of arithmetic performed under time pressure, and every error is a conversation with a farmer who remembers exactly what he delivered.

02

SYSTEM

Collection is captured per farmer per shift with quantity and quality, and the rate is resolved from a versioned rate chart rather than typed in.

The payout cycle sums collections, applies deductions for advances and purchases, and produces a farmer-wise statement that can be defended line by line.

03

CORE FLOW

How the operation moves through the system.

ARCH_01 / COLLECTION TO PAYOUT
  1. Member record with cattle, advance balance and payout mode
  2. Morning and evening shift entry with quantity and quality
  3. Resolved from a versioned quality-based rate chart
  4. Advances, feed and supply purchases recovered against the cycle
  5. Cycle statement per farmer, defensible line by line
  6. Payable and recovery posted to the shared engine
SELECT OR HOVER A NODE FOR DETAIL

Flow from farmer record through shift collection, rate resolution, deductions, cycle payout and accounting.

04

KEY MODULES

M01Farmer master
Member record, cattle detail, advance balance and payout mode.
M02Shift collection
Morning and evening entry with quantity and quality per farmer.
M03Rate charts
Versioned quality-based rates; historical cycles stay reproducible.
M04Deductions
Advances, feed and supply recovery applied against the cycle.
M05Payout
Cycle-wise statement, printed slip and payable register.
05

ARCHITECTURE

Client
Android app at the collection counter, usable at speed by one operator.
Rate resolution
Server-side from a versioned chart, never a typed figure.
Data
MySQL; collection entries are immutable once a cycle is closed.
Accounting
Farmer payable and recovery posted to VS Accounts.
06

ENGINEERING

The parts that were not obvious, and what the system does about them.

  1. 01 / 02

    Speed at the counter

    A queue of farmers at five in the morning sets the interface budget. Entry is farmer code, quantity, quality and commit, with no navigation between fields that a keypad cannot do.

  2. 02 / 02

    Reproducing a closed cycle

    A farmer disputing last month payout needs the same numbers again. Rate versions are stamped onto each collection entry, so a reprint is a reprint and not a recalculation.

07

SCREENS

  1. SCREEN_01Shift collection entry
  2. SCREEN_02Cycle payout statement
08

RESULT

The counter runs at the speed of the queue, and payout day produces statements nobody has to recompute by hand.