Inspiration

As I strive to improve my time management, I have come to the realisation that quantifying the priorities of my many tasks will assist in deciding how much time I should be allocating to each. Ideally, I would like a personalised calendar to not only track my deadlines and events but to also continuously update their priorities in real time.

What it does

In order to quantify the priority of a given task, I have come up with the following formula:

p(t) = (E0 - E(t))w((ts - t)^-1+ a*(ts - t)^2)

Where E0 is the initial effort estimate of the task completion (time), E(t) is time spent by the user on the given task, w is an arbitrary predefined weight of the task, ts is the time of submission/deadline date, and a represents some constant for curve conditioning.

For initial runs, w will represent the exact number of credits of the task. For non-university tasks/ tasks that do not directly contribute to awarded credits (such as project work actions), it is up to the user to make a conscious comparison to the other credit-weighted tasks.

As can be seen from the formula, as the time increases, the priority of a task will increase until work has been logged to the task. The aim is to achieve a priority of zero for all tasks by focusing on tasks of larger priority. In order to handle the rapid rate of change of gradient close to the submission date, I have included a derivative term in an attempt to manage this change. (This is an initial equation - subject to change)

How I built it

I initially began working on the back-end C++ implementation of the equation but as I became concerned about the user input of dates and their validation, I decided a GUI would be best to restrict a user to only selecting accurate date values. It will also allow for more flexibility in displaying crucial information. I began implementing the calendar interface via QML while continuing the C++ implementation of deadline/submission events and their construction in an SQL database.

What's next for Personal Time Management Calendar

  • Improve the Priority-based display by implementing an additional tab for all submissions in order of their priority.
  • Implement user input features for logging work done for a particular task and potentially revising their initial estimates of the weight and effort in addition to shifting the submission date without having to create a new task.
  • Implementation of further equations to incorporate the relationship between tasks (time taken working on one submission may have a direct impact on a related submission)
  • Once a relationship based system has been established, and tasks can be implemented as having total or partial precedence over another task, the calendar can be extended to becoming a gantt chart generating program.

Built With

Share this project:

Updates