Prasada Operations — Mini ERP
From raw material to the devotee’s hands — one ledger for the entire prasada chain, and a disbursal app that honours every receipt exactly once.
Prasada is prepared in a working kitchen, carried to several sales counters and handed out at staff disbursal points — in very large volumes on festival days. Every stage used to keep its own paper register. We replaced them with a single stock ledger that follows each batch from the raw materials that went into it to the counter that sold it.
Raw-material issue
Store issues materials to the kitchen against a numbered indent.
Production batch
Expected yield computed from inputs; short, excess and wastage recorded per batch.
Packing & units
Pieces, packets, trays and baskets — loose pieces kept exactly, never rounded away.
Batch transfers
Kitchen to counters, checked against each batch's remaining allowance.
Counter sales
One-tap quantities, server-side pricing, cash or UPI, thermal receipt.
Disbursal
Receipt QR scanned, entitlement worked out by rules, issue logged.
Reconciliation
Daily stock register where every day opens on the previous day's close.
Stock is an append-only ledger of events and movements, with balances held per location and in total. Nothing is ever edited or deleted: a correction is a reversal that posts the opposite movement, so the history always adds up.
Every sale, transfer and batch locks the rows it touches inside a single transaction, and a check constraint in the database refuses any balance below zero. Two counters selling the last packet at the same instant can't both succeed — and the test suite proves it.
Wastage rates are set by an administrator but frozen onto each batch when it is recorded, so changing a setting next month never rewrites last month.

Counters that can't double-sell
Prices come from the server, never typed by staff. Sales are idempotent, so a double-tap or a retried request is recorded once. Staff choose a counter per session, and a sale sent from a stale page aimed at another counter is rejected.
Disbursal that survives bad networks
A native Android scanner reads the receipt QR, routes it to the right source system and snapshots the entitlement so it can't change later. Each issue is logged on the device and retried with its original time. A durable outbox feed carries only receipt IDs and counts — no personal data.
A register auditors recognise
The month view mirrors the paper register column for column. Closing stock is derived — opening plus production, minus wastage, sales, transfers and every class of issue — with a live preview while entering, stale-edit protection and a full audit trail.
Reports by counter, kitchen or day
Abstracts for any date range and location: first and last transaction, opening and closing stock, transfers, mixed historical prices, cash and UPI split and a per-staff summary — printed at thermal width, emailed, or exported to CSV.
Receipts arrive from three systems with different formats. Configurable patterns route each one to its source, and server-side matching scores seva names against a prasada catalogue to work out exact quantities — packets, cloth, mementos and more — while catching failed payments and out-of-window claims.
Every handover is logged on the phone with a sync state. When the network drops, staff keep working; pending records retry automatically and carry their original issue time, so the audit trail stays true.
The server records a disbursal inside a locked transaction. A replay from a retrying phone returns "already recorded" and keeps the first timestamp — a receipt is honoured once across every device.
A date-range admin dashboard covers operations, collections, item abstracts and receipt-level audit with trends and CSV export, plus an emailed day report. An outbox-based feed is built to pass disbursal counts to the stock ledger with retries and acknowledgements.
Handing out the right offering, exactly once, even when the network drops.
Devotees who booked a seva collect their prasada at a staff counter. The entitlement depends on the seva, the amount and the date — and the counter can't afford to argue, guess or hand it out twice. Staff scan the receipt; the app tells them exactly what to hand over and blocks a second claim.
- Five clear outcomes: valid, already issued, not eligible, invalid, not today
- Camera QR scanning tuned for a busy counter
- Remote configuration — rules change without an app update
- Live in daily use, with documented incident recovery
Part of the digital ecosystem we build and run for a major religious institution.
← All workNeed something similar? Let's talk.
Booking systems, ERPs, dashboards — if your bottleneck looks anything like this one, the first conversation is free.
Book a free project consultation