Deployed on a VPS server using nginx, gunicorn, and supervisor: link
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.
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" |
Before installation, make sure that you have Python and Poetry installed.
-
Clone this repository
>> git clone https://github.com/ratushnyyvm/task-manager.git && cd task-manager
-
Install all necessary dependencies:
>> make install
-
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. -
To create the necessary tables in the database, start the migration process:
>> make migrate
-
Start developer server by running:
>> make start
The dev server will be at http://127.0.0.1:8000.
For unregistered and non-logged-in users, the following options are available:
After logging in, the user will have access to three additional tabs: "Statuses", "Labels", and "Tasks".
The "Tasks" tab allows the following actions:
To customize tasks, the "Statuses" and "Labels" tabs are available:
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