Inspiration

This is a project born out of my own necessity. Having taken many responsibilities, it often becomes hard to schedule when to do what, in a way that does not make me rush deadlines at the end. Regular TODO lists and GCal were seeing only part of the problem. I hence turned towards algorithms to solve this problem for me.

What it does

It essentially plans out what you should do, when you should do, starting from NOW, realtime. It gives you an exact timewise plan, with enough gaps, such that it doesn’t collide with any fixed tasks like lectures.

How we built it

This was built with Kotlin multiplatform, for easy future app building. On the desktop a JavaFX UI was built to display in a calender-esque view.

Challenges we ran into

The main brain of the program is the Scheduler itself. One smaller challenge was that how to implement the scheduling, but I ended up building a few abstractions over the segmented time, which made implementation much simpler. The main challenge was to not just simply use a greedy algorithm by deadline. This was overcome by first using the greedy, but then using randomisation to move around tasks based on simple rules, to not clutter too many tasks together.

Accomplishments that we're proud of

Both the solutions to abstracting the segmented time frames into linear continuous time, and later replacing with timechunks, as well as coming up with an iterated randomised solution to prevent task cluttering.

What we learned

Learnt a lot about scheduling while reading how humans behave w.r.t procrastination and task solving.

What's next for Scheduler

A lot! Everything from more complicated rules for scheduling tasks, to adding more types of tasks, to making apps for it(the whole reason for doing it in Kotlin multiplatform), to things like adding custom sleepschedules (already implemented in the background, but fixed) and other user specific preferences.

Built With

Share this project:

Updates