Task Master is a task management software created by Spiff Industries for standard desktop browsers available at https://spiffindustries.com/taskmaster/. It allows the user to easily create, edit, and check off tasks that can be optionally descriptive. The level of detail is up to the user. It employs the principles of importance and urgency as described in The 7 Habits of Highly Effective People® by Steven Covey. This software attempts to bring that system of efficiency to the 21st century.
TaskMaster was released as an Android app on Google Play in 2020. It was not successful and had many development problems that made it difficult to create new versions. Although visually appealing, the tasks themselves had too much granularity for importance and urgency to make it practical. This version of TaskMaster attempts to simplify the process and broaden the market. It introduces the use of cookies and user accounts and is deployed on the spiffindustries.com AWS server. Once this release is stable, the next version will introduce Android and iPhone apps that can employ the same user accounts.
If you are new to Django, please refer to https://docs.djangoproject.com/en/4.1/intro/ and follow the instructions for creating a site and a project. More experienced users simply need to create a TaskMaster
project in their Django site folder and download all the project files to that folder. The exact procedure will depend on the operating system used and is covered in detail in the above link. Gunicorn is recommended for production.
The database used for development was MySQL, but Django is set up in such a way that different databases could be used for the same model. The important thing is that the settings.py
file in your Django site is set up with database access, regardless of the system you use. Before running the Django server, the user must migrate the database. Specific instructions are available in this tutorial and in the example setup below.
The following is an example setup for running the TaskMaster Django project on a Linux server. This set of instructions assumes successful installation of Python, pip, and a database engine to be determined by the user.
sudo
keyword to these commands and/or use python3
instead of python
As mentioned above, you will have to configure your database. Specifically, you must add a database to your schema that is dedicated solely to the Django project (including all Django apps) and add a user that has full permissions to that database whose password you don’t mind adding to a local text file.
Install Django:
python -m pip install Django
Install Django Crispy Forms and bootstrap for Crispy:
python -m pip install django-crispy-forms
python -m pip install crispy-bootstrap4
Create a Django project:
django-admin startproject mysite
Open the settings file:
nano mysite/settings.py
Change the following:
Scroll down to the list of installed apps:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Add the lines 'taskmaster.apps.taskmasterConfig'
, 'crispy_forms'
, and 'crispy_bootstrap4'
so it now reads:
INSTALLED_APPS = [
'taskmaster.apps.taskmasterConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
'crispy_bootstrap4',
]
Scroll down to the databases portion, which should read something like:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB_NAME',
'USER': 'DB_USER',
'PASSWORD': 'DB_PASSWORD',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
For this portion, you must determine your own database setup. Whatever engine you use, it is important that you create a Django database and enter the database name and credentials in the above settings for a successful connection. See this for more information.
Scroll down to the timezone setting:
TIME_ZONE = 'UTC'
Add this line to the end of the file:
CRISPY_TEMPLATE_PACK = 'bootstrap4'
Find your timezone code and substitute it for 'UTC'
so it now reads something like:
TIME_ZONE = 'America/New_York'
Create the taskmaster app:
python manage.py startapp taskmaster
Download the TaskMaster project and add the files:
cd mysite/taskmaster
rm -r *
git clone https://github.com/rbrutherford3/Task-Master.git .
Prepare the TaskMaster database model:
python manage.py makemigrations taskmaster
Set up the database:
python manage.py migrate
Run the server:
python manage.py runserver
Open your browser and navigate to localhost:8000/taskmaster
(or 127.0.0.1:8000/taskmaster
)
Go to TaskMaster in your browser
Click/tap a task’s text to see details
Click/tap the ellipses to edit the task.
Click/tap “Save” to modify that task (or “Delete” to remove it)
Click/tap the checkbox to indicate that a task is complete
Click/tap “Delete Completed Tasks” to purge all tasks that are finished but still visible (note: this will permanently delete the tasks)
Click/tap “Add New Task” to create another one
Contributions are welcome, including any feedback. Please contact rbrutherford3 on GitHub.