Inspiration
When Joe was living in Denmark, he worked as a personal helper for a young man with muscular dystrophy whose helpers work 24-hour shifts, meaning they cannot work two consecutive days. Though fortunate to be granted personal help at no expense, most handicapped people in Denmark are responsible for scheduling their own teams, which is a surprisingly complex, tedious problem for which current tools that collect availabilities don't directly solve.
What it does
Given the availabilities and target shift quotas of multiple employees, Poodle generates a schedule that satisfies each employee's request.
How we built it
- Parse employees' schedules in an input file
- Assign days with only 1 employee available, thereby removing any adjacent days from that employee's availability and decreasing the size of the search space (4)
- Validate input and warn user if availability lists cannot yield a full schedule
- Use depth-first search on a tree where each node represents an employee being assigned to a given day, and backtracking occurs when a node has the same employee as its parent or exceeds that employee's quota.
- Print the master and individual employees' schedules
Challenges we ran into
The 12-hour time difference
Accomplishments that we're proud of
It works!
What we learned
We miss sleep
What's next for Poodle: Scheduler
This submission could be thought of as the backend for an eventual full-stack web app. We would love to build a Doodle-like user interface that employees can log onto to submit their availabilities, and that, once filled out by all employees, automatically generates and emails out the schedule.
This submission also solves for a particular use case with particular scheduling constraints. We would love to extend the program to be flexible enough to accommodate any scheduling need.
Log in or sign up for Devpost to join the conversation.