Skip to content

Epic: Evolve CPP Task Manager into a Robust Task Management Application #1

Description

@Aaqibhafeezkhan

Overview

Establish a structured roadmap for evolving the current C++ task manager into a maintainable, testable, and extensible task management application.

Goals

  • Strengthen the task domain model and business rules.
  • Separate presentation, application logic, domain logic, and persistence concerns.
  • Improve task lifecycle operations and validation.
  • Make persistence reliable and extensible.
  • Expand automated test coverage.
  • Improve usability, error handling, and documentation.
  • Keep the project portable and straightforward to build with CMake.

Workstreams

1. Domain & Architecture

  • Refine Task and TaskManager responsibilities.
  • Separate task data, business operations, persistence, and user interaction where appropriate.
  • Introduce clear interfaces between presentation and application/business layers.

2. Task Lifecycle & Features

  • Create, update, complete, delete, and list tasks consistently.
  • Add validation for task identifiers and required fields.
  • Support useful task attributes such as priority, status, and due dates where appropriate.

3. Persistence

  • Formalize loading and saving task data.
  • Handle malformed or missing persistence data safely.
  • Keep persistence implementation replaceable without coupling it to the UI.

4. Testing & Quality

  • Expand unit tests around task behavior and manager operations.
  • Add coverage for validation, persistence boundaries, and failure paths.
  • Keep builds reproducible through CMake without introducing GitHub Actions.

5. User Experience

  • Improve console navigation and command flow.
  • Provide clear success and error messages.
  • Handle invalid input without terminating unexpectedly.

6. Documentation

  • Keep README documentation aligned with the actual implementation.
  • Document architecture, build instructions, supported functionality, and future work.
  • Maintain the existing documentation structure as the project grows.

Phase Status

Definition of Done

  • Responsibilities are clearly separated and maintainable.
  • Core task operations have predictable behavior and validation.
  • Persistence is reliable and decoupled from presentation logic.
  • Important behavior is covered by automated tests.
  • The application remains buildable with the existing CMake workflow.
  • Documentation reflects implemented functionality and explicitly identifies TBD work.
  • No GitHub Actions are introduced; deployment/build execution remains manual.

Collaboration

This epic is assigned to aaqib-hafeez-khan-in and shruticparmar for shared ownership and implementation.

Workflow

Phase → Issue → implementation PR against main → request shruticparmar → self-review as a normal COMMENT → merge → update Epic.

Scope

Changes should remain focused on the task manager roadmap. Individual child issues should use focused PRs and avoid unrelated refactoring.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions