chore: complete v1.0 MVP milestone
Some checks failed
Build and Release to F-Droid / build-and-deploy (push) Has been cancelled

Archive roadmap and requirements to milestones/, evolve PROJECT.md
with validated requirements and decision outcomes, reorganize
ROADMAP.md with milestone grouping, create retrospective.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 20:10:01 +01:00
parent 36126acc18
commit 1a1a10c9ea
7 changed files with 263 additions and 197 deletions

View File

@@ -0,0 +1,169 @@
# Requirements Archive: v1.0 MVP
**Archived:** 2026-03-16
**Status:** SHIPPED
For current requirements, see `.planning/REQUIREMENTS.md`.
---
# Requirements: HouseHoldKeaper
**Defined:** 2026-03-15
**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.
## v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
### Room Management
- [x] **ROOM-01**: User can create a room with a name and an icon from a curated Material Icons set
- [x] **ROOM-02**: User can edit a room's name and icon
- [x] **ROOM-03**: User can delete a room with confirmation (cascades to associated tasks)
- [x] **ROOM-04**: User can reorder rooms via drag-and-drop on the rooms screen
- [x] **ROOM-05**: User can view all rooms as cards showing name, icon, due task count, and cleanliness indicator
### Task Management
- [x] **TASK-01**: User can create a task within a room with name, optional description, frequency interval, and effort level
- [x] **TASK-02**: User can edit a task's name, description, frequency interval, and effort level
- [x] **TASK-03**: User can delete a task with confirmation
- [x] **TASK-04**: User can set frequency interval from: daily, every 2 days, every 3 days, weekly, biweekly, monthly, every 2 months, quarterly, every 6 months, yearly, or custom (every N days)
- [x] **TASK-05**: User can set effort level (low / medium / high) on a task
- [x] **TASK-06**: User can sort tasks within a room by due date (default sort order)
- [x] **TASK-07**: User can mark a task as done via tap or swipe, which records a completion timestamp and auto-calculates the next due date based on the interval
- [x] **TASK-08**: Overdue tasks are visually highlighted with distinct color/badge on room cards and in task lists
### Task Templates
- [x] **TMPL-01**: When creating a room, user can select from bundled German-language task templates appropriate for that room type
- [x] **TMPL-02**: Preset room types with templates include: Küche, Badezimmer, Schlafzimmer, Wohnzimmer, Flur, Büro, Garage, Balkon, Waschküche, Keller, Kinderzimmer, Gästezimmer, Esszimmer, Garten/Außenbereich
### Daily Plan
- [x] **PLAN-01**: User sees all tasks due today grouped by room on the daily plan screen (primary/default screen)
- [x] **PLAN-02**: Overdue tasks appear in a separate highlighted section at the top of the daily plan
- [x] **PLAN-03**: User can preview upcoming tasks (tomorrow / this week)
- [x] **PLAN-04**: User can swipe-to-complete or tap checkbox to mark tasks done directly from the daily plan view
- [x] **PLAN-05**: User sees a progress indicator showing completed vs total tasks for today (e.g. "5 of 12 tasks done")
- [x] **PLAN-06**: When no tasks are due, user sees an encouraging "all clear" empty state
### Cleanliness Indicator
- [x] **CLEAN-01**: Each room card displays a cleanliness indicator derived from the ratio of overdue tasks to total tasks in that room
### Notifications
- [x] **NOTF-01**: User receives a daily summary notification showing today's task count at a configurable time
- [x] **NOTF-02**: User can enable/disable notifications in settings
### Theme & UI
- [x] **THEME-01**: App supports light and dark themes, following the system setting by default
- [x] **THEME-02**: App uses a calm Material 3 palette with muted greens, warm grays, and gentle blues
### Foundation
- [x] **FOUND-01**: App uses Drift for local SQLite storage with proper schema migration workflow
- [x] **FOUND-02**: App uses Riverpod 3 for state management with code generation
- [x] **FOUND-03**: App uses localization infrastructure (ARB files + AppLocalizations) with German locale, even though only one language ships in v1
- [x] **FOUND-04**: Bottom navigation with tabs: Home (Daily Plan), Rooms, Settings
## v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
### v1.1 — Near-Term
- **EXPORT-01**: User can export all data as JSON file
- **EXPORT-02**: User can import data from a JSON file
- **I18N-01**: App supports English as a second language
- **PHOTO-01**: User can add a cover photo to a room from camera or gallery
- **HIST-01**: User can view a completion history log per task (scrollable timeline of completion dates)
- **SORT-01**: User can sort tasks by alphabetical order, interval length, or effort level (in addition to due date)
### v1.2 — Medium-Term
- **PROJ-01**: User can create one-time organization projects with sub-task steps
- **PROJ-02**: User can attach before/after photos to a project
- **PROF-01**: User can create named local profiles for household members
- **PROF-02**: User can assign tasks to one or more profiles
- **PROF-03**: User can enable task rotation (round-robin) for shared recurring tasks
- **PROF-04**: User can filter the daily plan view by profile ("My tasks" vs "All tasks")
- **WIDG-01**: Home screen widget showing today's due tasks and overdue count
- **CAL-01**: User can view a weekly overview with task load per day
- **CAL-02**: User can view a monthly calendar heatmap showing task density
- **VAC-01**: User can pause/freeze all task due dates during vacation and resume on return
### v2.0 — Future
- **STAT-01**: User can view completion rate (% on time this week/month)
- **STAT-02**: User can view streak of consecutive days with all tasks completed
- **STAT-03**: User can view per-room health scores over time
- **ONBRD-01**: First-launch wizard walks user through creating first room and adding tasks
- **COLOR-01**: User can pick a custom accent color for the app theme
- **SYNC-01**: User can optionally sync data via self-hosted infrastructure
- **TABLET-01**: App provides a tablet-optimized layout with adaptive breakpoints
- **NOTF-03**: Optional evening nudge notification if overdue tasks remain
## Out of Scope
Explicitly excluded. Documented to prevent scope creep.
| Feature | Reason |
|---------|--------|
| User accounts & cloud sync | Local-only by design — zero backend, zero data leaves device |
| Leaderboards & points ranking | Anti-feature — gamification causes app burnout and embeds unequal labor dynamics |
| Subscription model / in-app purchases | Free forever by design — paywalls are the #2 complaint in chore app reviews |
| Family profile sharing across devices | Single-device app; cross-device requires cloud infrastructure |
| AI-powered task suggestions | Requires network/ML; overkill for personal app with curated templates |
| Per-task push notifications | Causes notification fatigue; daily summary is more effective for habit formation |
| Focus timer / Pomodoro | Not a productivity timer app; out of domain |
| Firebase or any Google cloud services | Contradicts local-first, privacy-first design |
## Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|-------------|-------|--------|
| FOUND-01 | Phase 1: Foundation | Complete |
| FOUND-02 | Phase 1: Foundation | Complete |
| FOUND-03 | Phase 1: Foundation | Complete |
| FOUND-04 | Phase 1: Foundation | Complete |
| THEME-01 | Phase 1: Foundation | Complete |
| THEME-02 | Phase 1: Foundation | Complete |
| ROOM-01 | Phase 2: Rooms and Tasks | Complete |
| ROOM-02 | Phase 2: Rooms and Tasks | Complete |
| ROOM-03 | Phase 2: Rooms and Tasks | Complete |
| ROOM-04 | Phase 2: Rooms and Tasks | Complete |
| ROOM-05 | Phase 2: Rooms and Tasks | Complete |
| TASK-01 | Phase 2: Rooms and Tasks | Complete |
| TASK-02 | Phase 2: Rooms and Tasks | Complete |
| TASK-03 | Phase 2: Rooms and Tasks | Complete |
| TASK-04 | Phase 2: Rooms and Tasks | Complete |
| TASK-05 | Phase 2: Rooms and Tasks | Complete |
| TASK-06 | Phase 2: Rooms and Tasks | Complete |
| TASK-07 | Phase 2: Rooms and Tasks | Complete |
| TASK-08 | Phase 2: Rooms and Tasks | Complete |
| TMPL-01 | Phase 2: Rooms and Tasks | Complete |
| TMPL-02 | Phase 2: Rooms and Tasks | Complete |
| PLAN-01 | Phase 3: Daily Plan and Cleanliness | Complete |
| PLAN-02 | Phase 3: Daily Plan and Cleanliness | Complete |
| PLAN-03 | Phase 3: Daily Plan and Cleanliness | Complete |
| PLAN-04 | Phase 3: Daily Plan and Cleanliness | Complete |
| PLAN-05 | Phase 3: Daily Plan and Cleanliness | Complete |
| PLAN-06 | Phase 3: Daily Plan and Cleanliness | Complete |
| CLEAN-01 | Phase 3: Daily Plan and Cleanliness | Complete |
| NOTF-01 | Phase 4: Notifications | Complete |
| NOTF-02 | Phase 4: Notifications | Complete |
**Coverage:**
- v1 requirements: 30 total
- Mapped to phases: 30
- Unmapped: 0
---
*Requirements defined: 2026-03-15*
*Last updated: 2026-03-15 after roadmap creation*

View File

@@ -0,0 +1,100 @@
# Roadmap: HouseHoldKeaper
## Overview
Four phases build the app bottom-up along its natural dependency chain. Phase 1 lays the technical foundation every subsequent phase relies on. Phase 2 delivers complete room and task management — the core scheduling loop. Phase 3 surfaces that data as the daily plan view (the primary user experience) and adds the cleanliness indicator. Phase 4 adds notifications and completes the v1 feature set. After Phase 3, the app is usable daily. After Phase 4, it is releasable.
## Phases
**Phase Numbering:**
- Integer phases (1, 2, 3): Planned milestone work
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
Decimal phases appear between their surrounding integers in numeric order.
- [x] **Phase 1: Foundation** - Project scaffold, database, state management, theme, and localization infrastructure (completed 2026-03-15)
- [x] **Phase 2: Rooms and Tasks** - Complete room CRUD, task CRUD with auto-scheduling, and bundled templates (completed 2026-03-15)
- [x] **Phase 3: Daily Plan and Cleanliness** - Primary daily plan screen with overdue/today/upcoming, cleanliness indicators per room (completed 2026-03-16)
- [x] **Phase 4: Notifications** - Daily summary notification with configurable time and Android permission handling (completed 2026-03-16)
## Phase Details
### Phase 1: Foundation
**Goal**: The app compiles, opens, and enforces correct architecture patterns — ready to receive features without accumulating technical debt
**Depends on**: Nothing (first phase)
**Requirements**: FOUND-01, FOUND-02, FOUND-03, FOUND-04, THEME-01, THEME-02
**Success Criteria** (what must be TRUE):
1. App launches on Android without errors and shows a bottom navigation bar with Home, Rooms, and Settings tabs
2. Light and dark themes work correctly and follow the system setting by default, using the calm Material 3 palette (muted greens, warm grays, gentle blues)
3. All UI strings are loaded from ARB localization files — no hardcoded German text in Dart code
4. The Drift database opens on first launch with schemaVersion 1 and the migration workflow is established (drift_dev make-migrations runs without errors)
5. riverpod_lint is active and flags ref.watch usage outside build() as an analysis error
**Plans**: 2 plans
Plans:
- [x] 01-01-PLAN.md — Scaffold Flutter project and build core infrastructure (database, providers, theme, localization)
- [x] 01-02-PLAN.md — Navigation shell, placeholder screens, Settings, and full app wiring
### Phase 2: Rooms and Tasks
**Goal**: Users can create and manage rooms and tasks, mark tasks done, and trust the app to schedule the next occurrence automatically
**Depends on**: Phase 1
**Requirements**: ROOM-01, ROOM-02, ROOM-03, ROOM-04, ROOM-05, TASK-01, TASK-02, TASK-03, TASK-04, TASK-05, TASK-06, TASK-07, TASK-08, TMPL-01, TMPL-02
**Success Criteria** (what must be TRUE):
1. User can create a room with a name and icon, edit it, reorder rooms via drag-and-drop, and delete it (with confirmation that removes all associated tasks)
2. User can create a task in a room with name, description, frequency interval (daily through yearly and custom), and effort level; tasks can be edited and deleted with confirmation
3. When creating a room, user can select from bundled German-language task templates for the chosen room type (all 14 room types covered) and they are added to the room as tasks
4. User can mark a task done (tap or swipe), which records the completion and sets the next due date correctly based on the interval
5. Overdue tasks are visually highlighted with a distinct color or badge on room cards and in task lists; tasks within a room are sorted by due date by default
6. Each room card shows its name, icon, count of due tasks, and cleanliness indicator
**Plans**: 5 plans
Plans:
- [x] 02-01-PLAN.md — Data layer: Drift tables, migration v1->v2, DAOs, scheduling utility, domain models, templates, tests
- [x] 02-02-PLAN.md — Room CRUD UI: 2-column card grid, room form, icon picker, drag-and-drop reorder, providers
- [x] 02-03-PLAN.md — Task CRUD UI: task list, task row with completion, task form, overdue highlighting, providers
- [x] 02-04-PLAN.md — Template selection: template picker bottom sheet, room type detection, integration with room creation
- [x] 02-05-PLAN.md — Visual and functional verification checkpoint
### Phase 3: Daily Plan and Cleanliness
**Goal**: Users can open the app and immediately see what needs doing today, act on tasks directly from the plan view, and see a room-level health indicator
**Depends on**: Phase 2
**Requirements**: PLAN-01, PLAN-02, PLAN-03, PLAN-04, PLAN-05, PLAN-06, CLEAN-01
**Success Criteria** (what must be TRUE):
1. The Home tab shows today's tasks grouped by room, with a separate highlighted section at the top for overdue tasks
2. User can mark a task done directly from the daily plan view via swipe or checkbox without navigating to the room
3. User can see upcoming tasks (tomorrow and this week) from the daily plan screen
4. A progress indicator shows completed vs total tasks for today (e.g., "5 von 12 erledigt")
5. When no tasks are due, an encouraging "all clear" empty state is shown instead of an empty list
6. Each room card displays a cleanliness indicator derived from the ratio of overdue tasks to total tasks in that room
**Plans**: 3 plans
Plans:
- [x] 03-01-PLAN.md — Data layer: DailyPlanDao with cross-room join query, providers, and localization keys
- [x] 03-02-PLAN.md — Daily plan UI: HomeScreen rewrite with progress card, task sections, animated completion, empty state
- [x] 03-03-PLAN.md — Visual and functional verification checkpoint
### Phase 4: Notifications
**Goal**: Users receive a daily summary notification reminding them of today's task count, and can control notification behavior from settings
**Depends on**: Phase 2
**Requirements**: NOTF-01, NOTF-02
**Success Criteria** (what must be TRUE):
1. User receives one daily notification showing the count of tasks due today, scheduled at a configurable time
2. User can enable or disable notifications from the Settings tab, and the change takes effect immediately
3. Notifications are correctly rescheduled after device reboot (RECEIVE_BOOT_COMPLETED receiver active)
4. On Android API 33+, the app requests POST_NOTIFICATIONS permission at the appropriate moment and degrades gracefully if denied
**Plans**: 3 plans
Plans:
- [ ] 04-01-PLAN.md — Infrastructure: packages, Android config, NotificationService, NotificationSettingsNotifier, DAO queries, timezone init, tests
- [ ] 04-02-PLAN.md — Settings UI: Benachrichtigungen section with toggle, time picker, permission flow, scheduling wiring, tests
- [ ] 04-03-PLAN.md — Verification gate: dart analyze + full test suite + requirement confirmation
## Progress
**Execution Order:**
Phases execute in numeric order: 1 -> 2 -> 3 -> 4
Note: Phase 4 depends on Phase 2 (needs scheduling data) but can be developed in parallel with Phase 3.
| Phase | Plans Complete | Status | Completed |
|-------|----------------|--------|-----------|
| 1. Foundation | 2/2 | Complete | 2026-03-15 |
| 2. Rooms and Tasks | 5/5 | Complete | 2026-03-15 |
| 3. Daily Plan and Cleanliness | 3/3 | Complete | 2026-03-16 |
| 4. Notifications | 3/3 | Complete | 2026-03-16 |