DEVELOPER NOTES:
This would be a calendar that shows the different shifts and who is assigned a shift. It would also show who requested a day/shift off. It would also have a feature to sync to Google Calendar for their particular calendar, and to export to iCal so they can use it on other calendars. There would be an ability to download as a PDF a certain month to see all the assigned shifts.
The User side should just see their calendar, the days/times they request off, and any shifts that have been made and who they have been assigned to. There would be a button to "view full calendar" which would show everyone's calendar on it. There would also be a button to “Request days/time off”. This would allow them to select one or more days in the calendar and have those as “days off”. If there is only a certain time they couldn’t work that day, then they should be able to also just request the starting time/ending time off. There also should be away for them to delete a time off request they have submitted. NO APPROVAL IS NEEDED FOR TIME OFF REQUESTS. There would be a button to Download/Print the calendar by month in list form showing shifts for "Just Me" or "For Everybody"
IMPORTANT: One limitation of the currently used Shift Controller Plugin is that if you request a day off that you have already requested off, it gives an error and you can’t publish your time off requests. This system would simply “ignore duplicate requests”.
The Scheduler should see in the calendar all the requested days/shifts off for each user.
They should be able to “Create Shift Types”. These would give a category to a shift (ie: in a restaurant there would be shift types of “Cook”, “Server”, “Host”, etc. They should then be able to assign what users can be scheduled for which shift type. (a user can be able to do more than one shift type). There should be an option to “Select All” when it comes to allowing users to be able to be assigned a particular shift type.
The Scheduler would be able to Create Shifts for days in the calendar and should be able to automatically repeat those shifts “Every Day”, “Every Week”, “Every Month”, or select certain days. For instance, he should be able to “Create Cook Shift 5:00PM – 9:00PM” then automatically repeat it every Monday, Tuesday, and Thursday.
Once shifts are created, he should be able to then assign users to those shifts. As he assigns a shift, it should only allow him to select users that are allowed to work that shift type AND did not request the day/shift off.
DESIGN NOTE: list of all the users on the side with a counter showing how many shifts they have been assigned for a given period (Week, Two Weeks, Month, Year, Certain Span of Time).
The Scheduler would be able to delete a person for a shift/reassign a person.