Files
HouseHoldKeaper/.planning/PROJECT.md

3.5 KiB

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