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.


Log in or sign up for Devpost to join the conversation.