Skip to content

Domain Model

tamarazard edited this page Mar 17, 2021 · 6 revisions

Domain Model

The key decisions:

  • We decided that there are three types of users: Owner, Customer and Assistant.
  • The owner is in charge of setting up the business information. Since there is only one business and one owner, the 1-1 association between the Owner class and the Business class is unnecessary because the system checks if the owner is logged in the system and only then, allows him/her to edit the business information.
  • The assistant is in charge of setting up reminders for customers. The Reminder is associated with a BookableService and is sent to the customer at a specific date and time with a small description.
  • The assistant also has access to the business information and precisely he/she can set up the operating hours along with the holidays of the business.
  • Similar to the owner, the association between Assistant and Business is unnecessary since there is one business and one assistant and the system checks if the assistant is logged in the system and only then, allows him/her to edit the operating hours and holidays.
  • The customer is associated with 0 to many Appointments which is itself linked with one BookableService and one specific TimeSlot.
  • The customer also has access to all his reminders.
  • The customer can set up his profile and is also linked to 0 to many cars. We decided that the composition between Customer-Profile and Customer-Car is a good way to illustrate how the system works, more specifically, when the customer deletes his account, his profile and his cars' information are deleted from the system.
  • The customer may also write a review specific to a BookableService.
  • There are two types of BookableService: Service and ServiceCombo. The ServiceCombo is composed of at least two ComboItem objects. In a ServiceCombo, there is always one main service justifying the composition ServiceCombo-ComboItem. There are also other ComboItem that may be mandatory and optional.