These kinds of applications are built for two different kinds of customers:
Employees: These are the people working inside a team; they work inside a shift-based time system to cover the whole day (or a big part of it), they need a system to manage permission, holiday, rest days, and to submit requests to change shifts with other employees.
Team managers: They have many people working for them, and their job is to manage all the shifts; they need a system to monitor the shifts of each day, and a way to accept/reject requests from their subordinates.
In this kind of system, we have many business rules to respect, such as the minimum hours between two turns, and how many consecutive days can be worked before a rest.
The application we want to realize in this chapter will ask the user...