diff --git a/README.md b/README.md index 2ca26cd..498af7a 100644 --- a/README.md +++ b/README.md @@ -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:///remote.php/dav/files//` -- **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