Production tracking system for a rubber tree plantation (seringal), replacing the paper/spreadsheet weighing log.
A rubber tree plantation logs every tapper's daily latex weighing by hand into a spreadsheet — no history of edits, no per-tapper trends, and no offline support for weighing stations with unreliable connectivity.
controle-seringal gives tappers and administrators a PWA that records weighings, computes production percentages over time, and keeps working offline at the weighing station, syncing once connectivity returns.
FastAPI backend with SQLAlchemy/Alembic over PostgreSQL, enforcing business rules at the database layer rather than in application code. The frontend is a dependency-free PWA (vanilla JS, service worker) with an offline write queue that syncs pending weighings once back online.