77 lines
3.5 KiB
Markdown
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*
|