Task Management System: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Created page with "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. == Tasks == ..."
 
No edit summary
Line 15: Line 15:


Due vs Spawn. Sometimes you want to do something on a day, other times you want to spawn a task on a day
Due vs Spawn. Sometimes you want to do something on a day, other times you want to spawn a task on a day
Date locking
Automated Re-balancing, day or all.


== Users ==
== Users ==
Line 21: Line 25:
* points per day pattern
* points per day pattern
* viewing preferences
* viewing preferences
* Project auto-balance default


== Timers ==
== Timers ==
Line 27: Line 32:


== Projects ==
== Projects ==
* 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.
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.
== 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:

Revision as of 14:25, 26 August 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.

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
  • Notes

Automation

This gets a little sticky.

Repeat pattern - could be days of the week (mon & wed), days of the month (15th, third monday), once a year or every n days. This brings in the complication of instance vs series and how to store that information.

Due vs Spawn. Sometimes you want to do something on a day, other times you want to spawn a task on a day

Date locking

Automated Re-balancing, day or all.

Users

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

Timers

  • Title
  • Done

Projects

  • 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.

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: