Skip to content

Spike: task-timer integration design #157

Description

@MessiasLima

Description

Investigate the design for connecting tasks to timer sessions — the defining feature of Phase 3. Each task gets a "play" button that starts a timer session linked to that task. As sprints complete, the task's session counter increments. This spike determines the data model for linking sessions to tasks, session estimation and auto-completion behavior, and how the task detail screen presents session progress.

Background

Phase 2 delivers a standalone pomodoro timer. Phase 3 connects tasks to timer sessions, transforming two independent features into one cohesive experience: the pomodoro-first todo app. Before implementing, we need to decide how sessions are linked to tasks, how estimation works, and what happens when the estimated count is reached.

Current Knowledge

  • Phase 2 will deliver a working standalone timer with sprint, short break, and long break states
  • Tasks already exist with all Phase 1 fields
  • The task list and detail screens exist from Phase 1
  • Session completions are persisted locally from Phase 2
  • The app uses Orbit MVI, Koin DI, and Room persistence

Scope

In scope: data model for task-session linkage (session counter on task vs. separate session entity), session estimation (user estimates how many sprints a task needs), auto-completion behavior (optionally mark task done when estimated count is reached), task detail screen session progress display, "play" button UX on task rows, settings for timer defaults and auto-completion.

Out of scope: standalone timer implementation (Phase 2), cloud sync of session data, recurring tasks (Phase 4).

Outcomes

  • Document the data model for linking sessions to tasks (inline counter vs. separate entity)
  • Define how session estimation works (user input, default values)
  • Determine auto-completion behavior and settings (auto-complete on estimated count, configurable)
  • Design the "play" button UX on task rows and what happens when tapped
  • Define how session progress is displayed on the task detail screen
  • Specify settings for timer defaults and auto-completion behavior
  • Create implementation tickets based on spike findings

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions