Files
oikos/package.json
T
ulsklyc 6d8763bbb9 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>
2026-03-24 14:42:08 +01:00

33 lines
904 B
JSON

{
"name": "oikos",
"version": "1.0.0",
"description": "Selbstgehostete Familienplaner-Web-App",
"main": "server/index.js",
"scripts": {
"start": "node server/index.js",
"dev": "node --watch server/index.js",
"setup": "node setup.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",
"better-sqlite3": "^9.6.0",
"connect-sqlite3": "^0.9.15",
"dotenv": "^16.4.7",
"express": "^4.21.2",
"express-rate-limit": "^7.5.0",
"express-session": "^1.18.1",
"helmet": "^8.0.0",
"node-fetch": "^3.3.2"
},
"optionalDependencies": {
"googleapis": "^144.0.0",
"tsdav": "^2.0.10"
},
"engines": {
"node": ">=20.0.0"
}
}