Track age and weight
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# puppy-tracker
|
||||
|
||||
A tiny offline-first PWA for tracking your puppy's sleep, meals, pees, and poos.
|
||||
A tiny offline-first PWA for tracking your puppy's sleep, meals, pees, poos, and
|
||||
weight.
|
||||
The browser is the primary client; a small Go server provides a shared
|
||||
source-of-truth and sync between devices.
|
||||
|
||||
@@ -16,6 +17,12 @@ source-of-truth and sync between devices.
|
||||
merged set.
|
||||
- Service worker bypasses cache for `/api/*` so writes always hit the server
|
||||
when online; static assets are still cached for offline use.
|
||||
- The puppy's name and birthday are a shared profile stored on the host
|
||||
(`GET`/`PUT /api/config`), so a new device picks them up automatically instead
|
||||
of being configured per-client. The client caches the last-seen values in
|
||||
`localStorage` for offline/instant paint and reconciles with the server by
|
||||
last-write-wins on `updatedAt`. The age shown in the header (in weeks and
|
||||
months) is derived from the birthday.
|
||||
|
||||
A status pill in the header shows `syncing…` / `synced 2m ago` / `pending` /
|
||||
`sync error` / `offline`. Tap it to force-sync.
|
||||
|
||||
Reference in New Issue
Block a user