docs: create roadmap (4 phases)

This commit is contained in:
2026-03-15 18:50:41 +01:00
parent 64f3c6fbe5
commit 3be468a647
3 changed files with 182 additions and 5 deletions

View File

@@ -119,13 +119,42 @@ Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status | | Requirement | Phase | Status |
|-------------|-------|--------| |-------------|-------|--------|
| *(populated during roadmap creation)* | | | | FOUND-01 | Phase 1: Foundation | Pending |
| FOUND-02 | Phase 1: Foundation | Pending |
| FOUND-03 | Phase 1: Foundation | Pending |
| FOUND-04 | Phase 1: Foundation | Pending |
| THEME-01 | Phase 1: Foundation | Pending |
| THEME-02 | Phase 1: Foundation | Pending |
| ROOM-01 | Phase 2: Rooms and Tasks | Pending |
| ROOM-02 | Phase 2: Rooms and Tasks | Pending |
| ROOM-03 | Phase 2: Rooms and Tasks | Pending |
| ROOM-04 | Phase 2: Rooms and Tasks | Pending |
| ROOM-05 | Phase 2: Rooms and Tasks | Pending |
| TASK-01 | Phase 2: Rooms and Tasks | Pending |
| TASK-02 | Phase 2: Rooms and Tasks | Pending |
| TASK-03 | Phase 2: Rooms and Tasks | Pending |
| TASK-04 | Phase 2: Rooms and Tasks | Pending |
| TASK-05 | Phase 2: Rooms and Tasks | Pending |
| TASK-06 | Phase 2: Rooms and Tasks | Pending |
| TASK-07 | Phase 2: Rooms and Tasks | Pending |
| TASK-08 | Phase 2: Rooms and Tasks | Pending |
| TMPL-01 | Phase 2: Rooms and Tasks | Pending |
| TMPL-02 | Phase 2: Rooms and Tasks | Pending |
| PLAN-01 | Phase 3: Daily Plan and Cleanliness | Pending |
| PLAN-02 | Phase 3: Daily Plan and Cleanliness | Pending |
| PLAN-03 | Phase 3: Daily Plan and Cleanliness | Pending |
| PLAN-04 | Phase 3: Daily Plan and Cleanliness | Pending |
| PLAN-05 | Phase 3: Daily Plan and Cleanliness | Pending |
| PLAN-06 | Phase 3: Daily Plan and Cleanliness | Pending |
| CLEAN-01 | Phase 3: Daily Plan and Cleanliness | Pending |
| NOTF-01 | Phase 4: Notifications | Pending |
| NOTF-02 | Phase 4: Notifications | Pending |
**Coverage:** **Coverage:**
- v1 requirements: 22 total - v1 requirements: 30 total
- Mapped to phases: 0 - Mapped to phases: 30
- Unmapped: 22 - Unmapped: 0
--- ---
*Requirements defined: 2026-03-15* *Requirements defined: 2026-03-15*
*Last updated: 2026-03-15 after initial definition* *Last updated: 2026-03-15 after roadmap creation*

83
.planning/ROADMAP.md Normal file
View File

@@ -0,0 +1,83 @@
# 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.
- [ ] **Phase 1: Foundation** - Project scaffold, database, state management, theme, and localization infrastructure
- [ ] **Phase 2: Rooms and Tasks** - Complete room CRUD, task CRUD with auto-scheduling, and bundled templates
- [ ] **Phase 3: Daily Plan and Cleanliness** - Primary daily plan screen with overdue/today/upcoming, cleanliness indicators per room
- [ ] **Phase 4: Notifications** - Daily summary notification with configurable time and Android permission handling
## 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**: TBD
### 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**: TBD
### 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**: TBD
### 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**: TBD
## 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 | 0/TBD | Not started | - |
| 2. Rooms and Tasks | 0/TBD | Not started | - |
| 3. Daily Plan and Cleanliness | 0/TBD | Not started | - |
| 4. Notifications | 0/TBD | Not started | - |

65
.planning/STATE.md Normal file
View File

@@ -0,0 +1,65 @@
# Project State
## Project Reference
See: .planning/PROJECT.md (updated 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.
**Current focus:** Phase 1: Foundation
## Current Position
Phase: 1 of 4 (Foundation)
Plan: 0 of TBD in current phase
Status: Ready to plan
Last activity: 2026-03-15 — Roadmap created, all 4 phases defined, 30 requirements mapped
Progress: [░░░░░░░░░░] 0%
## Performance Metrics
**Velocity:**
- Total plans completed: 0
- Average duration: -
- Total execution time: 0 hours
**By Phase:**
| Phase | Plans | Total | Avg/Plan |
|-------|-------|-------|----------|
| - | - | - | - |
**Recent Trend:**
- Last 5 plans: none yet
- Trend: -
*Updated after each plan completion*
## Accumulated Context
### Decisions
Decisions are logged in PROJECT.md Key Decisions table.
Recent decisions affecting current work:
- [Pre-phase]: Riverpod 3.3 requires Flutter 3.41+ — verify before scaffolding
- [Pre-phase]: All due dates stored as date-only (calendar day), not DateTime — enforce from first migration
- [Pre-phase]: German-only UI for MVP; localization infrastructure (ARB + AppLocalizations) required from Phase 1 even with one locale
- [Pre-phase]: riverpod_lint must be active before any feature code — catches ref.watch outside build() at analysis time
- [Pre-phase]: drift_dev make-migrations workflow must be established in Phase 1 — recovery cost is data loss
### Pending Todos
None yet.
### Blockers/Concerns
- [Research]: Recurrence policy edge cases not fully specified — "monthly" on the 31st, seasonal interval definition. Decide before Phase 2 planning.
- [Research]: Notification time configuration (user-adjustable vs hardcoded) not resolved. Decide before Phase 4 planning.
- [Research]: First-launch template seeding UX (silent vs prompted) not resolved. Decide before Phase 2 planning.
## Session Continuity
Last session: 2026-03-15
Stopped at: Roadmap created — ready to plan Phase 1
Resume file: None