This project creates a staff roster considering different staff expertise, areas of responsibility, weekly working hours, and holiday whishes with certain priorities. It uses overall utility maximisation to find the optimal staff allocation throughout a time period larger than a month.
Sadly, this project has never been finished. However, it started with best practice code documentation, modular, object-based programming, and test driven development. Fell free to continue.