What aims to be a sweet-action issue tracking system written in Python, and allowing for easy multiple project support.
- Support for projects
- Support for tasks
- Support for users
- Support for timesheets
While not strictly required, each task must be assigned to a project. If none is provided, the default project will be used.
In the first release, a project will consist of a unique name, a description, and an archived flag.
A user consists of a unique id (e.g. username, or email address - Boog Slayer makes no requirements of what is unique in your system), and name. The user also has a timesheet that consists of work Intervals
An interval consists of a start datetime, and end datetime, the task_id - the id of the task that has been worked on - and the user_id - the id of the user that has done the work.
A task has a variety of information to help sort and classify it. Each task has a unique id that is automatically assigned, and it must be assigned to a project - the default one by, uh, default. Other optional values are:
- desc: A short description of the task
- type: The type of the task. Suggested types: bug, item, feature request
- status: The status of the task. Suggested status values: new, assigned, in progress, completed, closed, won't fix
- assigned_to: The id of the user the task is assigned to. Can be None, or the actual ID of a user.
- contact: People to contact for the task. Suggested use: Name email@example.com, or IDs of users
- priority: An integer priority of the task. Suggested values: 1 - Highest, through 10 - Lowest
- due: The due datetime of the task.
- original_estimate: The first estimate provided for the task.
- current_estimate: The most up-to-date estimate of time left on the task.
- version: Suggested use: The version of the application this task relies on.
- backlog_order: An integer describing the backlog order of the task. Suggested use: 1 - next thing to work on, N - last thing to work on
- area: The area that the task belongs to. Suggested use: QA, Developers - or UI, Backend
- parent_case: Suggested use: A case that depends on this case being done first