Task Management System: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
I've worked on a number of these over the years. The current one is pretty good and mostly meets my need. However, I want to rebuild it and add a little more rigor.
I've worked on a number of these over the years. The current one is pretty good and mostly meets my need. However, I want to rebuild it and add a little more rigor.
People act like they have limited tasks and unlimited time, but just the opposite is true. And it gets worse - not only is our time limited, but so is our will, and if we over do it, we'll burnout. So how do we pick a set tasks that can actually finish, feel good about and burn ourselves out? This should help.


== Tasks ==
== Tasks ==

Revision as of 18:36, 23 September 2013

I've worked on a number of these over the years. The current one is pretty good and mostly meets my need. However, I want to rebuild it and add a little more rigor.

People act like they have limited tasks and unlimited time, but just the opposite is true. And it gets worse - not only is our time limited, but so is our will, and if we over do it, we'll burnout. So how do we pick a set tasks that can actually finish, feel good about and burn ourselves out? This should help.


Tasks

  • Title
  • Date (null puts it on a backlog) - I've run into a lot of trouble with this in the past, I think I'll store it as an int this time representing days since 8/13/84
  • Points
  • Priority: Priority is high, medium, low and critical. Critical ignores point balancing, so all critical tasks end up on today if you do an automatic rebalanced, even if that violates point balancing. H/M/L will rebalance allowing higher tasks to get done sooner, but still obeying point balancing.
  • Notes
  • Repetition - Only once instance of a task can be active at a time. All other instances appear as 'ghosts'. When a task is completed, the points are given and the active instance gets moved to the next day.
    • After Complete
      • r[n] where n is any integer
      • Repeats n days after the task is completed
    • Weekly Pattern
      • w[(0-6)*] for instance w135 for mon, wed, fri
      • Task will recur on the next weekday matching the pattern
    • Monthly day pattern
      • m[((0-5)(0-6))*] for every two integer set, the first number is the week (0-5) and the second integer is the day of the week
      • m1131 would be the second and fourth monday of a month
    • Monthly Date pattern
      • M[(-/+)01-31*] every signed two integer pair represents a day of the month, if a number is negative, it counts from the end of the month.
      • M+01+15-1 would the 1st, 15th and last day of every month
    • Year Pattern
      • y(((01-12)(01-31))*] the first two integers would be the month, the second two would be the date
      • y011504150815 would be the 15th of January, April and August every year.
  • Locked: a locked task cannot change it's date (except on complete/repeat cycle)

Automated Re-balancing, day or all. If you rebalance a day - tasks in reverse priority order will be pulled off and bumped to the next fit. If you rebalance all, each day, in succession will get rebalanced (for the next two weeks).

One note, I previously supported task dependency spawning (create one task when another was completed), that is going to be handled with projects this time.

Users

  • point-to-minute conversion
  • points per day pattern
  • viewing preferences
  • Project auto-balance default

Timers

  • Title
  • Done

Projects

  • Title
  • Auto-balance: If true, each task will be added to the 'next fit' date when a stage is activated, if false - they will be added to the current date. If auto-balance is not specifically set for a project, it will default to the user setting.

Projects are a way to group tasks into sets of dependencies. A project is divided into stages, tasks belong to a project-stage.

I should be able to sum up the points in a project and come up with a completed percentage.

All tasks in project not in the current stage will be placed on the backlog (not given a date). As soon as one stage is complete, all the tasks from the next stage will be added, following auto-balance rules.

There are some questions I need to think about more - how will repeating tasks be handled? can a project repeat? should there be conditionals?

UI

The first UI I build is going to be plain HTML, just to stub out the functionality. Lauren will build the rest.

API

  • /user/new
    • Operation: creates a new user
    • Required: username, password
    • Returns: userid
  • /user/login
    • Operation: login
    • Required: username, password
    • Returns: userid
  • /task/new
    • Operation: Creates a new task
    • Required: title
    • Optional: date, priority, points, automation
    • Returns: task object (json)
  • /task/update
    • Operation: Updates attributes of a task
    • Required: task id
    • Optional: any task attributes
    • Returns: task object (json)
  • /task/delete
    • Operation: deletes a task
    • Required: task id
    • Returns: confirmation
  • /task/done
    • Operation: Marks a task as done
    • Required: task id
    • Returns: confirmation
  • /timer/new
    • Operation: creates a new timer
    • Required:
    • Optional:
    • Returns:
  • template
    • Operation:
    • Required:
    • Optional:
    • Returns: