No description
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Eddy de Vink 0513db46ac fix: sync deletion propagation, add base64 util, timeout, and merge improvements
Critical:
- Add deleted column: deleteMeasurement now soft-deletes, merge filters
  out deleted items based on updatedAt (was: deletions were resurrected)
- Replace btoa with UTF-8-safe encodeBase64 utility for Hermes compat

Important:
- Preserve createdAt when overwriting duplicate-date measurements
- Add 15s AbortController timeout to all WebDAV fetch calls
- Revert broken date prefilling regression (MeasurementForm)
- getAllMeasurements/latest/byDate now filter deleted records
- Replace Dimensions with useWindowDimensions for rotation awareness
- Replace silent catch with console.warn in HistoryScreen

Tests: 8 new tests for deletion merge cases and soft-delete queries
2026-08-05 20:55:14 +02:00
.claude Initial commit 2026-06-27 22:39:13 +02:00
assets Initial commit 2026-06-27 22:39:13 +02:00
docs/superpowers Initial commit 2026-06-27 22:39:13 +02:00
src fix: sync deletion propagation, add base64 util, timeout, and merge improvements 2026-08-05 20:55:14 +02:00
tests fix: sync deletion propagation, add base64 util, timeout, and merge improvements 2026-08-05 20:55:14 +02:00
.gitignore fix: add .expo/ to gitignore 2026-06-28 00:51:26 +02:00
AGENTS.md Initial commit 2026-06-27 22:39:13 +02:00
app.json feat: add EAS config and android package name for APK build 2026-06-28 00:05:04 +02:00
App.tsx feat: wire up App.tsx with navigation 2026-06-27 22:42:33 +02:00
CLAUDE.md Initial commit 2026-06-27 22:39:13 +02:00
eas.json feat: add EAS config and android package name for APK build 2026-06-28 00:05:04 +02:00
index.ts Initial commit 2026-06-27 22:39:13 +02:00
LICENSE Initial commit 2026-06-27 22:39:13 +02:00
package-lock.json feat: add date picker as first field in measurement form 2026-06-27 23:02:51 +02:00
package.json feat: add date picker as first field in measurement form 2026-06-27 23:02:51 +02:00
README.md docs: update README and Obsidian vault with latest features 2026-06-28 00:01:44 +02:00
tsconfig.json feat: wire up App.tsx with navigation 2026-06-27 22:42:33 +02:00
UNLICENSE docs: public domain (Unlicense) 2026-06-27 22:46:32 +02:00

Weegschaal App

React Native (Expo) app voor het handmatig invoeren van meetgegevens van een slimme weegschaal. Data wordt lokaal opgeslagen in SQLite en gesynchroniseerd met Nextcloud via WebDAV.

Meetwaarden

  • Gewicht (kg)
  • BMI
  • Vetpercentage (%)
  • Vetmassa (kg) — automatisch berekend
  • Spierpercentage (%)
  • Spiermassa (kg) — automatisch berekend
  • Buikvet (index)
  • Stofwisseling in rust (kcal)

Schermen

  • Dashboard — laatste meting (groene kaart) + drie losse grafieken onder elkaar (gewicht, vetmassa, spiermassa), elk met eigen y-as-schaal en 30-dagen filter gerekend vanaf de nieuwste meting
  • Nieuwe meting — datumkiezer bovenaan (standaard vandaag), formulier vooraf ingevuld met waarden van de laatste meting. Opslaan-knop altijd in beeld (buiten ScrollView). Bij opslaan wordt automatisch gesynchroniseerd met Nextcloud
  • Historie — FlatList gesorteerd op ingevoerde datum (nieuwste bovenaan), pull-to-refresh
  • Instellingen — WebDAV configuratie (URL, gebruikersnaam, wachtwoord met oogje voor tonen/verbergen), handmatige sync, wissen met bevestigingsdialoog

Ontwikkeling

npm install
npx expo start

Scannen met Expo Go op Android of iOS.

Synchronisatie

Data wordt opgeslagen als weegschaal/measurements.json in je Nextcloud WebDAV. Vul in het Instellingen scherm het volgende in:

  • URL: https://<jouw-nextcloud>/remote.php/dav/files/<gebruikersnaam>/
  • Gebruikersnaam: je Nextcloud gebruikersnaam
  • Wachtwoord: je Nextcloud app-wachtwoord

Bij sync worden lokale en externe metingen samengevoegd (last-write-wins op basis van updatedAt). De map weegschaal/ wordt automatisch aangemaakt via MKCOL indien deze nog niet bestaat.

Testen

npm test

Licentie

Public domain (Unlicense)