# 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*