Menu

Requirements

Dirk Starke

Requirements

Wording

  • Manage:
    typically means add, edit, and delete

Domain

  • All domain objects can have a note or comment.

Tasks

  • As a user I want to manage tasks.
  • A task is specified by its name.
  • Tasks can be recurring.
  • A task can have a duration.
  • A task can have a start date.
  • If the start date of a task is not set, it is determined by the system using the duration of all tasks coming first.
  • A task can have an end date.
  • If the end date of a task is not set, it is determined by the system using the duration.
  • A task can have a deadline.
  • A task can have an action timeline being: next, waiting, or future.
    • Open question: Does a waiting action being delegated count on my timeline?
  • A task can be associated with an area.
  • A task can be associated with 0..n contexts.
  • A task can be associated with a contact.

Projects & Subprojects

  • As a user I want to manage projects and subprojects.
  • A (sub-)project is specified by its name.
  • A (sub-)project can contain 0..n tasks.
  • A (sub-)project can contain 0..n subprojects.
  • A (sub-)project can be associated with an area.
  • A (sub-)project can be associated with a contact.

Areas

  • As a user I want to manage areas (of responsibility).
  • An area is specified by its name.
  • An area can have an amount of time which a user plans to spend on the projects and tasks of this area.

Contacts

  • As a user I want to manage contacts (mainly for delegated tasks).
  • A contact is specified by its name.

Contexts

  • As a user I want to manage contexts.
  • A context is specified by its name.

Storage

  • Not sure about that, because it is slow and difficult to synchronize:
    • All program data has to be stored in an XML file.
    • When a file is stored, a backup file has to be saved.
    • The directory for backup files has to be configurable.

Related

Wiki: Home