Skip to content

To Do Planner Applicaion written in Python using mathematics to calculate the order of tasks.

License

Notifications You must be signed in to change notification settings

BooleanCube/TDPlanner

Repository files navigation

DiscordDB

TDPlanner

TDPlanner is a To Do List application which uses mathematical calculations to plan the order of your day.

TDPlanner uses basic mathematics to sort the order of which the tasks listed should be done. It even provides a visual representation of the graph using the matplotlib package in Python.
Only Linux Builds are available because I am too lazy to build for Windows users :p


image

Usage

Using the application is as easy as using any other TO DO List Application.

  • Add Task: Add a task to the to do list.
  • Mark As Complete: Mark a task in the to do list as complete (remove the task from the to do list)
  • Reset Tasks: Deletes all concurrent tasks in the to do list and starts a fresh to do list.

Tasks will not reset if you close the tab because they are locally stored in a cache database. Multiple tasks can have duplicate names without an issue because there is a task ID system set in place.

Settings

I have included weightage settings just in case for people who prefer doing urgent tasks more than important tasks and vice versa. The settings will be reset to equal weightage every time the application is opened.

Calculations and Visualizations

TDPlanner uses matplotlib to display the graph and show the user which tasks are being chosen to be first and why.
On a grid (x axis being urgency values and y axis being importance values of the tasks), we can lay out each of the tasks as a point on the grid. Based on the importance weightage and urgence weightage, we can determine the slope of a line that we are going to use to sweep through until we reach the origin picking the tasks we have to do in order.
Here is an example displayed in desmos (graphing calculator) to help you visualize: mathrepresentation In the example above, the slope of the line was -1 because the weightage of the 2 were the same. But, if the weightages were to be altered, the sweep would work the same except the slope of the line would have been the only change. In the scenario where multiple points hit the sweeping line at the same time, we put the most urgent tasks first.

According to the example above with equal weightage, the tasks we are supposed to be doing follow the order of: {(9,9), (6,7), (5,8), (8,2)}.
But let's say you gave more weightage to urgency instead of importance; if you decrease the importance weightage and increase the urgency weightage enough, (8,2) will come further ahead in the order of the to do list.

With all the visualization, I came to a simple conclusion that each task could be sorted by a singular value which is the sum of the values multiplied by the weights, or in other terms, importance_weight*importance_value + urgence_weight*urgence_value. Using this to calculate the value a task holds, functions the same as sweeping through the graph and I only used the graph sweeping to create a better visualization of what happens behind the scenes.

Installation

Download and Extract the latest release from the releases page and run the executable file after giving it execution permissions.
For further detailed installation instructions, visit the INSTALL.md file which contains instructions with more steps if this didn't work out.


TDPlanner (To Do Planner) is written in Python 3.9 and uses TKinter GUI to function. TDPlanner uses this TKinter dark theme script from Formazione for the GUI.


Developed by BooleanCube ;]