For the project I have decided to create a self-hosted web based application. This has a number of advantages over a native or hosted web application:
- Platform agnostic (accessible on Windows, Mac, Linux or mobile devices)
- Available anywhere (scheduling needs can be taken care of at home or on the go without any special networking setup like VPN)
- Doesn’t rely on third party hosting or require a high monthly payment to service provider (great for small business setup)
- Relatively straightforward development and update process
As it turns out, though, there are not a great number of self-hosted web applications that do what I am trying to accomplish. The closest one I could find is Employee Scheduler, an open source PHP script that has not been updated since 2004.
The software was created by Brigham Young University to help manage student employees working at a campus library. In theory the script does a number of the things I would like to–included helping employees set their availability, add shifts and set different positions.
Employee Scheduler availability selection screen
The problem is that it quite difficult to navigate or complete tasks in the script. Its not immediately obvious that in order to add a shift, for example, you have to first add an area, then a position, then create a “schedule”. Even then the schedule will only populate if an employee has availability during the whole shift, and there no indication when employees have availability. Because the Employee Scheduler has not been developed for about ten years, it is challenge to install on a typical web hosting environment. I ended up creating a virtual machine in order to try it out.
I believe that I can learn from the availability selection tool, however, and I also like the idea of colour coding for employees. The script also differentiates between hours each employee desires to work (min, max, preferred) which relates to my café case study.
When I Work day overview
For the sake of comparison, I also tried a popular hosted solution. When I Work is a web based service geared towards a wide array of business types (coffee shops, schools, emergency services etc) that pay a monthly subscription fee. This implementation is of much higher quality, offering features (like daily invested hours) and interaction that make the scheduling process much easier. Adding a shift, for example, has many fewer steps than Employee Scheduler. The manager need only select an employee, click on a day, input the start and end time.
I will differentiate my solution by providing flexible options for availability selection, a punch clock and making the system self-hosted so that the small business need not rely on a third party.