feat: Phase 2 Schritt 8 — Dashboard mit allen Widgets

- Aggregierter GET /api/v1/dashboard Endpoint (1 Request für alle Widgets)
- Widget: Begrüßung mit tageszeit-abhängigem Text + aktuellem Datum
- Widget: Dringende Aufgaben (priority high/urgent, fällig ≤ 48h, nicht done)
- Widget: Anstehende Termine (nächste 5, mit Avatar-Farbe)
- Widget: Heutiges Essen (nach Mahlzeit-Typ sortiert)
- Widget: Angepinnte Notizen (max. 3, mit Notizfarbe)
- Skeleton-Loading-States während API-Call (keine Spinner)
- FAB Speed-Dial: + Aufgabe, + Termin, + Einkauf, + Notiz
- Responsives 1/2/3-Spalten-Grid (Mobil / Tablet / Desktop)
- Dashboard-Tests: 8/8 bestanden (node:sqlite)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ulsklyc
2026-03-24 14:42:08 +01:00
parent d49cbe33b3
commit 6d8763bbb9
7 changed files with 1129 additions and 14 deletions
+3 -1
View File
@@ -7,7 +7,9 @@
"start": "node server/index.js",
"dev": "node --watch server/index.js",
"setup": "node setup.js",
"test:db": "node --experimental-sqlite test-db.js"
"test:db": "node --experimental-sqlite test-db.js",
"test:dashboard": "node --experimental-sqlite test-dashboard.js",
"test": "node --experimental-sqlite test-db.js && node --experimental-sqlite test-dashboard.js"
},
"dependencies": {
"bcrypt": "^5.1.1",