# 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 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 ## Ontwikkeling ```bash 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 npm test ``` ## Licentie Public domain (Unlicense)