From fbf6856633c76e009d6d260e90f8b32c018c59f7 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Sun, 15 Mar 2026 18:19:35 +0100 Subject: [PATCH] docs: initialize project --- .planning/PROJECT.md | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .planning/PROJECT.md diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md new file mode 100644 index 0000000..100d4c5 --- /dev/null +++ b/.planning/PROJECT.md @@ -0,0 +1,76 @@ +# HouseHoldKeaper + +## What This Is + +A local-first Flutter app for organizing household chores and one-time projects, built for personal/couple use on Android. Takes the room-based task scheduling model (inspired by BeTidy), strips cloud/account/social features, and wraps it in a calm, minimal Material 3 UI. Fully offline, free, privacy-respecting — all data stays on-device. + +## Core Value + +Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it. + +## Requirements + +### Validated + +(None yet — ship to validate) + +### Active + +- [ ] Room CRUD with icons and optional photos +- [ ] Task CRUD with frequency intervals and due date calculation +- [ ] Daily plan view with overdue/today/upcoming sections +- [ ] Task completion with auto-scheduling of next due date +- [ ] Bundled task templates per room type (German only) +- [ ] Daily summary notification +- [ ] Light/dark theme with calm Material 3 palette +- [ ] Cleanliness indicator per room (based on overdue vs on-time) +- [ ] Task sorting (due date, alphabetical, interval, effort) +- [ ] Task history (completion log per task) + +### Out of Scope + +- User accounts & cloud sync — local-only by design +- Leaderboards & points ranking — not a gamification app +- Subscription model / in-app purchases — free forever +- Family profile sharing across devices — single-device app +- Server-side infrastructure — zero backend +- Data export/import (JSON) — deferred to v1.1 +- English localization — deferred to v1.1 (ship German-only MVP) +- Real-time cross-device sync — potential future self-hosted feature +- Tablet-optimized layout — future enhancement +- Statistics & insights dashboard — v2.0 +- Onboarding wizard — v2.0 +- Custom accent color picker — v2.0 + +## Context + +- Inspired by BeTidy (iOS/Android household cleaning app) — taking the proven room-based model, removing cloud/social, refining the UI +- Built for personal use with partner on a shared Android device; may publish publicly later +- Code and comments in English; UI strings German-only for MVP +- Room photos are nice-to-have for MVP — icon-only rooms are sufficient initially +- Developer is new to Drift (SQLite ORM) — plan should account for learning curve +- Gitea (self-hosted on Hetzner) for version control; no CI/CD pipeline yet + +## Constraints + +- **Tech stack**: Flutter + Dart, Riverpod for state management, Drift for local SQLite +- **Platform**: Android-first (iOS later) +- **Offline**: 100% offline-capable, zero network dependencies +- **Privacy**: No data leaves the device, no analytics, no tracking +- **Language**: German-only UI for MVP, English code/comments +- **No CI**: No automated build pipeline initially + +## Key Decisions + +| Decision | Rationale | Outcome | +|----------|-----------|---------| +| Riverpod over Bloc | Modern, compile-safe, less boilerplate, Dart-native | — Pending | +| Drift over raw sqflite | Type-safe queries, compile-time validation, migration support | — Pending | +| Android-first | Primary device is Android; iOS follows | — Pending | +| German-only MVP | Primary user language; defer localization infrastructure | — Pending | +| No CI initially | Keep scope focused on the app itself | — Pending | +| Calm Material 3 palette | Muted greens, warm grays, gentle blues — calm productivity, not playful | — Pending | +| Clean Architecture | Feature-based folder structure with data/domain/presentation layers | — Pending | + +--- +*Last updated: 2026-03-15 after initialization*