Simplified data model and class diagram - Shiftify/shiftify GitHub Wiki

Class diagram showing only what the managers should look like and Shifts and WorkDay, which managers are working with.

Class diagram

Understand that all the managers do only what concenrns its instances. That means that a RoleManager only works with Roles, the ScheduleTypeManager only works with the ScheduleTypes and all that they work with = at this point ScheduleShifts. The UserManager then works with Users and all that the User relates with = adding Roles to Users, assigning Schedules to Users and adding ExceptionSchedules to Users (this extends to assigning ExceptionShifts to those assigned ExceptionSchedules).

This simplified model describes how the db should look like and what entities are "managed" by which manager.

Data model

The same data model, only without showing the responsibility of db managers.

Less described data model

Usecase diagram