Files
HouseHoldKeaper/.planning/PROJECT.md

77 lines
3.5 KiB
Markdown

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