Skip to content

Iteration 1: Domain Model

Antoine Wang edited this page Oct 26, 2020 · 6 revisions

Domain Model of the FlexiBook Application

In this page, we will demonstrate the domain model for iteration 1, as well as an examination of 17 features to ensure the model supports them.


Diagram

Currently the model is at version 1.1. Domain model

For past versions (1.0, 0.5, etc), please see appendix page domain model development log.


Feature Check

Feature Implementation Considerations
1. Sign up for customer account Class CustomerAccount captures this feature.
2. Update customer or owner account Class OwnerAccount has defaulted name and password, but they are changeable for the update.
3. Delete customer account Can delete CustomerAccount by its default delete() method. The composition from class Appointment makes sure all the appointments also gone with the account.
4. Login as customer or owner Account.password for authentication, Account.isCurrentlyLoggedIn change to true as the account logged in successfully. FlexiBookSystem.hasUserLoggedIn indicates the system is full and do not accept other accesses.
5. Logout Opposite to feature 4
6. Setup business information General information like address, phoneNumber and emailAddress reside in class FlexiBookSystem. For schedule, attributes in class DailySchedule defines the regular time frame for the business like lunchtime and open/close time. Also, attributes in class Vacation is responsible for all other special dates and occasions when the business is unavailable.
7. Update business information All attributes mentioned in Feature 6 have public getters and setters.
8. Add service Class SingleService, which is a subclass of Service captures this feature.
9. Update service Other than the configurable attributes in SingleService, another class ServiceDetail holds the price and timing information of Service. Both SingleService and ServiceCombo have a current record (currentDetail), but also many past records (oldDetails) if the owner wants to revert the changes made.
10. Delete service Can delete Service by its default delete() method.
11. Define service combo Each service combo has a mainService and a list of otherServices.
12. Update service combo All attributes in class ServiceCombo and ServiceDetail are changeable. The component of the combo can also be changed as long as it satisfies the multiplicity defined in associations with Single Service
13. Delete service combo Can delete ServiceCombo by its default delete() method.
14. View appointment calendar There is a class Calendar associating daily schedule (class DailySchedule) and special occasions (class Vacation) to display an overall timeframe of the business. More will be handled in UI.
15-17. Make, Update and Delete appointment Class Appointment captures those features.