Start with one task, one language review and clear sync states
For a Punjab farm team or farmer producer organisation (FPO), first choose a daily task such as recording a harvest or collection receipt. Confirm the language and script with the actual users, define what can be saved without connectivity, and distinguish a local draft from a record accepted by the server.
This is an English-language planning guide for Punjab projects, with fictional examples and proposed acceptance checks. It is not a field-tested Punjabi application or evidence that all farmers use the same language, units or devices.
Agree Punjabi labels with the people using them
If users need Punjabi in Gurmukhi script, appoint a fluent reviewer for labels, error messages and help text. Discuss whether English or Hindi is also needed. Do not use a translated menu as evidence that quantities, dates, search and validation work in that language.
- Keep record identifiers stable when the display language changes. A translated crop name should not create a second crop record.
- Test long labels, names, keyboard entry and font rendering on the agreed phones, including at larger text sizes.
- Use text as well as colour for “Pending”, “Accepted” and “Needs review”. Ask users to explain the difference in their own words.
- Set appropriate HTML language attributes for web content and translated passages so assistive technology can interpret them. MDN documents the lang attribute.
Specify what offline means
Separate opening an app offline from entering a draft offline and completing a transaction offline. A browser storage API can retain records, but does not itself make the page load without a network. A web app may need a service worker and an agreed cache/update policy; a native app has a different installation and storage lifecycle.
IndexedDB provides structured browser storage. Service workers can support cached responses for offline use. Neither feature alone supplies server permissions, conflict resolution or a backup. Select the approach after agreeing the required device and browser support.
Worked example: a harvest entry after a connection drop
A fictional field worker records 120 kg against plot P-07. The device assigns operation ID H-104 and displays “Pending sync”. If the server accepts H-104 but its reply is lost, the next upload must reuse H-104. The server should return the existing acceptance instead of creating another 120 kg receipt.
If a supervisor has changed a record while a device was offline, compare versions and show the conflict for review. A newer upload time does not establish that its quantities are correct. Agree whether supervisors can correct records and how the original entry and correction reason remain traceable.
Punjab pilot questions to settle before an INR quote
- Which villages, collection points and users are in the first pilot, and who approves translated terms?
- Are phones shared? Define sign-in, sign-out and how pending drafts are protected before changing users.
- Which units appear on actual forms? Store quantity and unit together; do not assume every bag or crate has a fixed weight.
- Which records may stay on the device, for how long, and how will users recover after a lost phone or cleared storage?
- Which actions require a connection? Reserving or dispatching shared stock needs an explicit policy for competing requests.
Proposed acceptance checks for your pilot
- Restart the agreed device with a pending record: the record and its sync state remain understandable.
- Lose the connection after server acceptance, then retry: exactly one receipt exists for that operation ID.
- Upload a stale edit: it is rejected or sent for review, rather than silently replacing an accepted correction.
- Switch language and increase text size: labels remain legible and no draft values change.
- Use a shared phone and sign out: another user cannot read the previous user’s private records.
These are acceptance criteria to agree and test, not completed tests. The demo report covers only its narrower simulated workflow. Field validation, translation review and security testing remain separate project work.