Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

ratushnyivm/task-manager

Repository files navigation

Task Manager

hexlet-check linter-check test-check Maintainability Test Coverage


Demonstration

Deployed on a VPS server using nginx, gunicorn, and supervisor: link


Description

Task manager is a web application that allows managing tasks. Users can create, edit and track tasks, assign performers, and change their statuses. Registration and authentication are required to work with the system.

Tasks are the main entity of the application and consist of a name and description. A performer can be assigned to each task to complete it. Additionally, each task has mandatory fields: author (set automatically when the task is created) and status.

The status indicates what is happening with the task, whether it is done or not. Tasks can be in the following statuses: "new", "in progress", "in testing", "completed", etc.

Each task can also have a set of labels that allow grouping tasks by different characteristics such as bugs, features, etc.


Dependencies

Tool Version
python "^3.10.0"
django "4.1.7"
python-dotenv "^0.21.1"
gunicorn "^20.1.0"
whitenoise "^6.3.0"
django-bootstrap4 "^22.3"
dj-database-url "^0.5.0"
psycopg2-binary "^2.9.5"
django-filter "^22.1"
rollbar "^0.16.3"

Installation

Before installation, make sure that you have Python and Poetry installed.

  1. Clone this repository

    >> git clone https://github.com/ratushnyyvm/task-manager.git && cd task-manager
  2. Install all necessary dependencies:

    >> make install
  3. Create .env file in the root folder and add following variables:

    SECRET_KEY={your secret key}
    DATABASE_URL=postgresql://{provider}://{user}:{password}@{host}:{port}/{db}
    ROLLBAR_ACCESS_TOKEN={your secret key}

    If you choose to use SQLite DBMS, do not add DATABASE_URL variable.

  4. To create the necessary tables in the database, start the migration process:

    >> make migrate
  5. Start developer server by running:

    >> make start

    The dev server will be at http://127.0.0.1:8000.


Usage

For unregistered and non-logged-in users, the following options are available:

  • homepage with a brief instruction on how to use the application home page

  • page with a list of all registered users user list

  • user registration create user

  • login to the system login

After logging in, the user will have access to three additional tabs: "Statuses", "Labels", and "Tasks".

The "Tasks" tab allows the following actions:

  • viewing the list of tasks and filtering, editing, and deleting tasks task list

  • creating a new task task create

  • viewing a specific task task detail

To customize tasks, the "Statuses" and "Labels" tabs are available:

  • creating, listing, editing, and deleting statuses status list

  • creating, listing, editing, and deleting labels label list

Limitations:

  • only the user themselves can edit or delete their account
  • it is not possible to delete a user, status, or label that is referenced in a task
  • only the author of a task can delete it