Skip to content

Simple and flexible task management web application based on Django

Notifications You must be signed in to change notification settings

Mr-Freewan/task-manager

Repository files navigation

Task Manager

Simple and flexible task management web application

Actions Status Actions Status Maintainability Test Coverage

Description

A task management web application built with Python and Django framework. It allows you to set tasks, assign executors and change their statuses. Registration and authentication are required to work with the system.

Demo app is HERE (Requests can be delayed about 50 seconds or more).

Features

  • Set tasks;
  • Assign executors;
  • Change task status;
  • Set multiple tasks labels;
  • Filter the tasks displayed by executors, author, labels and status;
  • User authentication and registration;

Links

This project was built using these tools:

Tool Description
Django "Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design."
Poetry "Python dependency management and packaging made easy"
Flake8 "Your tool for style guide enforcement"
Bootstrap "Powerful, extensible, and feature-packed frontend toolkit."
PostgreSQL "The World's Most Advanced Open Source Relational Database"
Gunicorn "WSGI HTTP Server for UNIX"
Whitenoise "Radically simplified static file serving for Python web apps"

Installation

Important!

Application

Clone the project:

git clone https://github.com/Mr-Freewan/task-manager.git && cd task-manager

Then install dependencies:

make install

Create .env file in the root folder and add following variables:

SECRET_KEY = '{your secret key}' // Django secret key

If you want to use PostgreSQL:

DATABASE_URL = postgresql://{provider}://{user}:{password}@{host}:{port}/{db}

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

If you want to crease superuser automatically:

DJANGO_SUPERUSER_USERNAME = '{name}'
DJANGO_SUPERUSER_PASSWORD = '{password}'
DJANGO_SUPERUSER_EMAIL = '{email}' // for notifications

For PAAS (Render, Railway, etc):

PAAS_HOSTNAME = '{hostname}'

For Rollbar errors tracking:

ROLLBAR_TOKEN = '{token}'

To create the tables in the database, start the migration process:

make migrate

If you want create superuser:

make create_superuser

Usage

Start the gunicorn server by running (UNIX):

make start

The server url will be at terminal, for example http://0.0.0.0:8000.

Or start the development mode:

make dev

The server url will be at terminal, for example http://127.0.0.1:8000.

Available Actions:

  • Registration — First, you need to register in the application using the registration form provided;
  • Authentication — To view the list of tasks and create new ones, you need to log in using the information from the registration form;
  • Users — You can see the list of all registered users on the corresponding page. It is available without authorization. You can change or delete information only about yourself. If a user is the author or performer of a task, it cannot be deleted;
  • Statuses — You can view, add, update, and delete task statuses if you are logged in. Statuses corresponding to any tasks cannot be deleted;
  • Tasks — You can view, add, and update tasks if you are logged in. Only the task creator can delete tasks. You can also filter tasks on the corresponding page with specified statuses, performers, and labels;
  • Labels — You can view, add, update, and delete task labels if you are logged in. Labels matching any tasks cannot be deleted.

About

Simple and flexible task management web application based on Django

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages