After weeks of intense development, AGENDA Phase 2 is officially complete.
138 tests passing. Zero regressions. The task module is functional end to end.
What Was Built
Phase 2 covers the entire task management core — from the domain layer to the user interface, through the BLoC, Isar repositories, and three integrated productivity frameworks.
Productivity Frameworks
Eisenhower Matrix — A 2×2 grid that classifies tasks by urgency and importance. Do immediately what is urgent and important. Plan what is important but not urgent. Delegate the urgent but unimportant. Eliminate the rest.
1-3-5 Rule — Each day starts with a clear intention: 1 big task, 3 medium, 5 small. AGENDA enforces this constraint automatically, preventing the infinite list that never ends.
GTD (Getting Things Done) — Capture, process, organize by context, and weekly review. Nothing falls through the cracks.
Project Management
- Projects with subtasks and rolled-up progress
- Recurring tasks with auto-regeneration (daily, weekly, monthly)
- Real-time keyword search
- Advanced filters: status, priority, framework, date
Interface
TaskListScreenwith tabs per frameworkTaskFormScreenwith 14 fields and real-time validationEisenhowerScreen— 2×2 grid with quadrant drag-and-dropDayPlannerScreen— 1-3-5 Rule view with visual slotsGtdFilterScreen— filter by GTD context
Technical Decisions
BLoC as the single source of truth
Every task operation — create, update, complete, delete, filter — goes through TaskListCubit. The UI never accesses the repository directly. This makes state predictable and testable.
// All operations go through the cubit
await cubit.createTask(params);
await cubit.toggleComplete(id);
await cubit.applyFilter(filter);
Isar Community as the database
We chose isar_community (the active fork of the original Isar, abandoned since 2023) for its native read performance on device and reactive API via watchQuery. No SQLite, no JSON files — typed queries directly in Dart.
Tests without database mocks
138 tests, all against real repositories with Isar in-memory. Mocks only for external dependencies (notifications, auth). This taught us an important lesson from prior projects: database mocks hide schema and query issues that only surface in production.
Test Coverage
| Layer | Tests | Status |
|---|---|---|
| Domain | 18 | Passing |
| Data (Isar) | 34 | Passing |
| Application | 52 | Passing |
| Presentation | 34 | Passing |
| Total | 138 | 100% |
Next Steps
Phase 3 — Finance Core begins now. The goal: bring the same level of completeness to the finance module — transactions, budgets, savings goals, debts, and a dashboard with charts.
AGENDA is taking shape. If you want to follow along or contribute, the repository is open: github.com/lizzyman04/agenda.