docs: initialize project
This commit is contained in:
76
.planning/PROJECT.md
Normal file
76
.planning/PROJECT.md
Normal file
@@ -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*
|
||||
Reference in New Issue
Block a user