5.6 KiB
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):
- App launches on Android without errors and shows a bottom navigation bar with Home, Rooms, and Settings tabs
- 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)
- All UI strings are loaded from ARB localization files — no hardcoded German text in Dart code
- The Drift database opens on first launch with schemaVersion 1 and the migration workflow is established (drift_dev make-migrations runs without errors)
- 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):
- 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)
- 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
- 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
- User can mark a task done (tap or swipe), which records the completion and sets the next due date correctly based on the interval
- 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
- 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):
- The Home tab shows today's tasks grouped by room, with a separate highlighted section at the top for overdue tasks
- User can mark a task done directly from the daily plan view via swipe or checkbox without navigating to the room
- User can see upcoming tasks (tomorrow and this week) from the daily plan screen
- A progress indicator shows completed vs total tasks for today (e.g., "5 von 12 erledigt")
- When no tasks are due, an encouraging "all clear" empty state is shown instead of an empty list
- 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):
- User receives one daily notification showing the count of tasks due today, scheduled at a configurable time
- User can enable or disable notifications from the Settings tab, and the change takes effect immediately
- Notifications are correctly rescheduled after device reboot (RECEIVE_BOOT_COMPLETED receiver active)
- 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 | - |