docs: README met features, changelog, deploy-instructies

This commit is contained in:
cas 2026-07-25 00:31:23 +02:00
parent ebff09e3e1
commit 9d6a4fb5cb

123
README.md Normal file
View file

@ -0,0 +1,123 @@
# 🍞 Karby — Koolhydratenteller
Een Nederlandse **Progressive Web App** om snel en eenvoudig koolhydraten te tellen per eetmoment.
> Gemaakt voor **Chavalie**, die haar koolhydraatinname wil bijhouden.
> Gebaseerd op de officiële **NEVO-dataset** van het RIVM met 2.328 voedingsmiddelen.
---
## ✨ Features
### 🔍 Zoeken & Vinden
- **2.328 NEVO-voedingsmiddelen** met koolhydraten per 100g
- **Infinite scroll** — soepel door duizenden resultaten bladeren
- **Fuzzy search** — vindt ook meervoud/enkelvoud varianten
- **Categorie-filter** (🍞 brood, 🥛 zuivel, 🥩 vlees, 🍎 fruit, etc.)
- **Voedingscentrum-link** per product — direct doorklikken naar voedingsinfo
### 📅 Dagboek
- **6 eetmomenten**: Ontbijt, Lunch, Avondeten, Tussendoor 1/2/3
- **Datumnavigatie** — terug- en vooruitbladeren door dagen
- **Koolhydraten-totaal** per eetmoment met visuele voortgangsbalk
- **LED-kleuren**: groen ✅ / oranje ⚠️ / rood 🚫 (aanpasbare daglimiet)
- **Glucose-metingen** inline per eetmoment — nuchter + 2u na maaltijd
- **Infinite scroll** — soepel door duizenden resultaten bladeren
### 🧑‍🍳 Maaltijden
- **Maaltijden opslaan** — combineer 2+ ingrediënten tot herbruikbare maaltijd
- **Slimme naamsuggestie** op basis van gekozen ingrediënten
- **Checkbox-selectie** — kies welke items je wilt opslaan
- **Geneste weergave** in dagboek — maaltijden uitklappen voor detail
- **Eenmalig/permanent aanpassen** — wijzig porties zonder recept te veranderen
- **Bulk-delete** via checkboxes met bevestigingsdialoog
### ⚖️ Porties
- **Intuïtieve portiekeuze**: 1 snee 🍞, 1 glas 🥛, 100g, 50g
- **Portie-steppers** (+/) voor snelle aanpassing
- **Directe koolhydraten-berekening** — zie meteen hoeveel kh je toevoegt
### 🎨 UX
- **Amber/goud Vorteq-thema** — warm en toegankelijk
- **Animaties**: fade/slide op modals, tabs, toasts, meal-groups
- **Haptic feedback** bij knoppen en checkboxes
- **Bottom sheets** met swipe-down sluiten
- **Toast-meldingen** op exacte klik-positie
- **Dark mode via systeemvoorkeur** (geen handmatige toggle)
### 📱 PWA
- **Installeerbaar** op iOS en Android (Add to Home Screen)
- **Offline-ready** via Service Worker
- **Sticky header + zoekbalk** — blijft in beeld bij scrollen
- **Touch-optimized** — minimale knoppen 44×44px, geen hover-afhankelijkheid
---
## 🧪 Tests
**39 Playwright e2e-tests** — 38 passing, 1 legitiem skipped:
```bash
npm install
npx playwright install chromium
npx playwright test
```
Tests dekken: zoeken, dagboek CRUD, maaltijden opslaan/bewerken, portie-aanpassing, bulk-delete, glucose-metingen, en UX-flow.
---
## 🏗️ Tech Stack
| Laag | Technologie |
|---|---|
| Frontend | Vanilla HTML/CSS/JS — single `index.html` (SPA) |
| Styling | CSS Custom Properties, Flexbox, geen framework |
| Iconen | Font Awesome 6.5 (gratis set) |
| Data | NEVO-2023 via RIVM, verwerkt tot JSON |
| Tests | Playwright (Chromium, headless) |
| Deploy | Docker + Nginx op homelab NAS |
| CI/CD | Git push → handmatige `scp` + `docker cp` |
---
## 🚀 Deploy
```bash
# Build & run locally
cd docker
docker compose up -d
# Deploy naar homelab
scp index.html core@homelab:/opt/stacks/eetdagboek/
ssh core@homelab "docker cp /opt/stacks/eetdagboek/index.html eetdagboek:/usr/share/nginx/html/"
```
Live op: **[eetdagboek.vantwout.dev](https://eetdagboek.vantwout.dev)**
---
## 📄 Licentie
MIT — wordt binnenkort geopensourcet.
---
## 📝 Changelog
### v1.0.0 — 25 juli 2026
**Eerste productie-release 🎉**
- 🔍 Zoekfunctie met 2.328 NEVO-voedingsmiddelen + infinite scroll + fuzzy search
- 📅 Dagboek met 6 eetmomenten, datumnavigatie, koolhydraten-teller
- 🩸 Glucose-metingen per eetmoment (nuchter + postprandiaal)
- 🧑‍🍳 Maaltijden opslaan, herbruiken, aanpassen — nested in dagboek
- ⚖️ Portie-steppers met intuïtieve maten (snee, glas, 100g, 50g)
- 🗑️ Bulk-delete met checkbox-selectie + confirmatiedialoog
- 📊 Dagelijkse koolhydratenlimiet met progressbar (groen/oranje/rood)
- 🔗 Voedingscentrum-links per product
- 🎨 Amber/goud thema, animaties, haptic feedback, touch-optimized
- 📱 PWA — installeerbaar, offline-ready
- 🧪 39 Playwright e2e-tests (38 passing)
- 🐳 Dockerized deployment op homelab NAS