trackington

Web application which allows you to track your tasks.


License
MIT
Install
pip install trackington==0.8

Documentation

Trackington.io

Project for Python Course (2015) @ FMI

Build Coverage Climate
Build Status Coverage Status Code Climate

Application

Application is about tracking and managing simple tasks. For simplicity tasks are combined into projects. Project is under MIT license.

Users

Every body can access this application after simple registration. During registration an email is required, but at current moment of there is no really mail interaction included into the project. Each user has some rights and responsibilities. There are several three major views of the application you can set via menu:

  • Projects - list of all projects you're involved into.
  • Dashboard - you can get a view of all your active assigned tasks (in all projects).
  • Calendar - calendar view of current month with all hours logged into all tasks (or for selected project).

Projects

As a registered user you will interact with projects daily. You can do several things with them:

  • Inspect as long as you want the public ones.
  • Create one by yourself.
  • Join a project.
  • Manage already created project.

Creating project

Every user can create his own project from "Create new" button in Projects main view or visiting /projects/create. For new project you wil need only a name and a description for project, also you can choose if your project will be privately created only for you and people you allow to it or it will be public to the whole world. As for each project a friendly-url is automatically generated there maybe some conflicts with already created ones, so you might think well for a name of it. After creating a project you'll become an admin in this project, but more for this will be explained in last section of this chapter.

Inspecting project

All projects that are marked as public will be accessible for viewing from Public projects menu. So you can access its description and all of its tasks, but you cannot interact with them in any way if you are not part of it.

Managing a project

When a project is created there are several but important things a user can do in it. First of all in every project there are three kinds of permissions for all users in it:

  • owner - When a project is created there is only one person in it and it's the owner.The owner can set permissions to other users and also he can delete the project. If owner selects another user as owner the project has 2 owners and they have exactly the same permissions. Every owner can set permissions, remove permissions, edit name of project, edit description of projects, edit access level of project, has full control over the tasks into the project.
  • contributor - A contributor is a person, who has full control over the tasks in the project, but don't have access to settings connected directly with project(permissions, name, description, access level). Although if a user wants to leave a project he is always available to.
  • spectator - A spectator is a user who can view all of the tasks but cannot edit them. He doesn't have access to project settings, and the only thing we can do is to comment into the tasks. He also can leave whenever he wants. Only users which have access to a private project can interact with it.

Join a project

User cannot join himself to a project. Only a project owner can give him access to a project(excluding the aforementioned public projects). After user has an access to a project, the project and tasks will appear in all of user's main views.

Tasks

Every project is bunch of tasks combined together. Every person who has access to a project with appropriate permissions can create, edit, delete or view every single task in it. Every task has fields that will be explained in the several lines. Only the name of the task is mandatory field every other one is optional.

Name

Every task has name which is a text field with several restrictions: name should not be empty and also has a max length restriction to 200 symbols.

Description

Description field is a text field which has only one length restriction of 500 symbols.

Type

There are several types of tasks in every project.

  • Epic - That are tasks that are directly displayed when you go to a project. Every epic task has a child tasks and it really groups and summarizes its children data (as points, time, etc)
  • Task - That's the normal task that is you're going to deal on a daily basis. This type of tasks are displayed as a list under an epic task or into project view which are specially marked.
  • Sub task - They are like taks but displayed into the normal task as sub task list.

If there is a long term task which doesn't have clear time spans nor defined specifications it should be created as epic. Over the time project user will fill it with normal tasks as much as they need to. If a normal task can be separated smaller one (e.g. preparation, testing, implementing, etc.) well separate it over sub tasks to avoid unnecessary complexion. The import information will be gathered to the task and then to the epic.

Epic task displays brief information about all tasks in it. As project displays brief information (about done work, worked hours etc.) about all epics(tasks) in it.

If an epic task should be deleted all tasks in it disappear also with it.

This is the only field of a task that cannot be edited after is set.