docs: update README met huidige architectuur en vibecoding vermelding

This commit is contained in:
eddy 2026-07-20 20:17:03 +02:00
commit 491ea1ff16

View file

@ -1,25 +1,35 @@
# 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.
*Gemaakt met vibecoding — DeepSeek V4 Pro*
React Native (Expo) app voor het handmatig invoeren van meetgegevens van een slimme weegschaal. Data wordt lokaal opgeslagen in SQLite en gesynchroniseerd via een eigen REST API.
## Meetwaarden
- Gewicht (kg)
- BMI
- Vetpercentage (%)
- Vetmassa (kg) — automatisch berekend
- Vetmassa (kg)
- Spierpercentage (%)
- Spiermassa (kg) — automatisch berekend
- Spiermassa (kg)
- Buikvet (index)
- Stofwisseling in rust (kcal)
## Schermen
- **Dashboard** — laatste meting in een kaart + drie grafieken (gewicht, vetmassa, spiermassa) met eigen y-as-schaal, te schakelen tussen 30 en 365 dagen
- **Nieuwe meting / Meting wijzigen** — datumkiezer bovenaan (standaard vandaag), formulier vooraf ingevuld met waarden van de laatste meting. Ook te gebruiken om een bestaande meting te bewerken. Opslaan-knop altijd in beeld (buiten ScrollView). Bij opslaan wordt automatisch gesynchroniseerd met Nextcloud
- **Meting detail** — alle meetwaarden in een kaartweergave, met knoppen om de meting te wijzigen of te verwijderen (verwijderen roept ook sync aan)
- **Historie** — FlatList gesorteerd op ingevoerde datum (nieuwste bovenaan), pull-to-refresh
- **Instellingen** — WebDAV configuratie (URL, gebruikersnaam, wachtwoord met oogje voor tonen/verbergen), handmatige sync, WebDAV-credentials wissen met bevestigingsdialoog
- **Dashboard** — laatste meting, voorlaatste meting met gewichtsverschil, deel-knop om de kaart als PNG te delen
- **Nieuwe meting / Meting wijzigen** — formulier met datumkiezer, vooraf ingevuld met waarden van de laatste meting
- **Meting detail** — alle meetwaarden met knoppen voor wijzigen en verwijderen
- **Historie** — FlatList gesorteerd op datum (nieuwste bovenaan), pull-to-refresh
- **Instellingen** — REST API URL en token, handmatige sync
## Synchronisatie
De app sync via een eigen REST API (`weegschaal.eddydevink.nl`) met Bearer token-authenticatie. Incrementele delta-sync op basis van `updatedAt` timestamps — alleen gewijzigde metingen worden uitgewisseld.
Vul in het Instellingen scherm in:
- **API URL**: `https://weegschaal.eddydevink.nl`
- **Token**: je persoonlijke Bearer token
## Ontwikkeling
@ -28,18 +38,6 @@ 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
```bash