chore: complete v1.0 MVP milestone
Some checks failed
Build and Release to F-Droid / build-and-deploy (push) Has been cancelled
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:
169
.planning/milestones/v1.0-REQUIREMENTS.md
Normal file
169
.planning/milestones/v1.0-REQUIREMENTS.md
Normal 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*
|
||||
100
.planning/milestones/v1.0-ROADMAP.md
Normal file
100
.planning/milestones/v1.0-ROADMAP.md
Normal 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 |
|
||||
Reference in New Issue
Block a user