Operations & Field Tech

Offline-First Aquaculture Operations Platform

Field-ready feeding, inventory, and approvals for shrimp farms with poor connectivity

offline firstoperationspwa

Overview

We replaced handwritten feeding sheets with a mobile PWA that works offline on low-end Android, syncs safely when connectivity returns, and enforces farm business rules like two-day edit windows and owner approvals.

Context

Shrimp aquaculture farms in rural India rely on paper feeding reports. Supervisors have limited smartphone experience, connectivity is unreliable, and owners need audit trails, inventory deductions, and PDF/Excel reports — without forcing field staff to learn complex software.

Real-world scenario

A supervisor walks pond-to-pond recording feed quantities in kilograms. The app saves locally even with no signal. When sync runs, late entries trigger owner approval. The owner reviews dashboards, approves pending items, and exports feeding reports for the week.

Constraints

  • Offline-first on low-end Android (360px minimum, PWA installable)
  • Phone + 6-digit PIN auth — no email required for field staff
  • Farm timezone-aware two-day edit rule for supervisors
  • Immutable inventory ledger — no editable stock fields
  • Idempotent sync to prevent duplicate feeding entries
  • English + Telugu-ready i18n architecture

What we built

  • Built React PWA with IndexedDB (Dexie) queue and background sync worker
  • NestJS API with Prisma on PostgreSQL — role-based owner vs supervisor permissions
  • Automatic DOC, Total Daily Feed, and cumulative feed calculations mirroring manual sheets
  • Late offline submissions route to owner approval workflow with audit history
  • PDF and Excel report generation (PDFKit, ExcelJS) with share/export
  • Deployed to GCP Cloud Run (aquafarm.kaana.in) with Cloud SQL Auth Proxy and Secret Manager

Architecture

  • Supervisor PWA → local IndexedDB → sync queue → REST API → PostgreSQL
  • Owner dashboard: approvals, historical edits, reports, farm/pond/cycle setup
  • Cloud Run Jobs for demo seeding and data fix migrations
  • Monorepo: npm workspaces + Turborepo (web, api, shared packages)

Reliability & security

  • Idempotent API endpoints for offline replay
  • JWT access + refresh tokens in Secret Manager
  • Health check at /health; deployed image tagged per git commit

Outcomes

  • Supervisors adopt immediately — workflow matches existing paper process
  • Owners gain real-time visibility and approval control over field data
  • Works in ponds with intermittent connectivity
  • Production live at aquafarm.kaana.in with dedicated API subdomain

Technology stack

Frontend

ReactVitePWADexieTanStack QueryTailwind

Backend

NestJSPrismaPostgreSQL 16PDFKitExcelJS

Infrastructure

GCP Cloud RunCloud SQLArtifact RegistryCloud Run Jobs

FAQ

Does the app work without internet?

Yes. Supervisors record feeding offline; data syncs when connectivity returns, with owner approval for late submissions.

What auth do field staff use?

Phone number and 6-digit PIN — no email required for pond supervisors.

Can owners export reports?

Yes. PDF and Excel feeding reports are generated from confirmed entries and inventory deductions.

Related services

For social · LinkedIn hook

Paper feeding sheets don't fail offline. Your software shouldn't either.

  • Problem: handwritten aquaculture reports + no connectivity in the field
  • Solution: offline PWA + sync queue + owner approval workflow
  • Rules: two-day edit window, immutable inventory ledger, idempotent sync
  • Live: aquafarm.kaana.in on GCP Cloud Run + PostgreSQL

Running field operations where connectivity fails? We build offline-first systems with sync, approvals, and audit trails.

Discuss a similar project