Skip to content

DumanIbrahm/HotelManagementSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HOTEL MANAGEMENT SYSTEM

THE AIM OF THE PROJECT

The project aims to address the challenges in hotel management systems, specifically focusing on enhancing flexibility, adaptability to customer preferences, and maintaining system integrity. Traditionally, hotel management systems face issues related to fixed room features and limitations in accommodating dynamic changes in room configurations.

PATTERNS

  • STRATEGY DESIGN PATTERN

    • Within our hotel management system, we've introduced a pivotal component known as the Behavior interfaces such as BalconyBehavior, ViewBehavior, and BathroomBehavior to streamline and manage the customization behaviors for each room. Each of these behavior classes encapsulates specific customization logic, providing a modular and interchangeable approach to tailor the guest experience. For instance, the BathroomBehavior class handles the intricacies of bathroom features, allowing guests to choose between a bathtub, a shower cabin, or a jacuzzi. Meanwhile, the ViewBehavior class takes charge of room views, presenting options like a captivating sea view or a scenic mountain view. The latest addition, the BalconyBehavior class, empowers guests to decide whether their chosen room will include the added feature of a balcony.
  • DECORATOR DESIGN PATTERN

    • Decorator design pattern is utilized in the hotel management system to delegate the responsibility of room description customization. The getDescription() function, which provides details about the room, is delegated with the decorator pattern. This function includes information about the bed type, television, table, sofa, and fridge in the room. In the Decorator pattern, each of these furniture components is represented by a decorator class. These decorator classes extend the base getDescription methods, allowing for the dynamic addition of specific features without altering the structure of the underlying RoomDescription object. For instance, there might be a Bed, TV, Table, Sofa, and Fridge. When a guest customizes their room, the corresponding decorators are dynamically added based on their preferences. For example, if a guest chooses a bed, the Bed is added to the getDescription object, updating the room's description accordingly. This delegation of responsibilities to the Decorator pattern ensures that the room customization logic is encapsulated within the relevant decorator classes, making it easy to extend and modify the behavior without modifying the core getDescription() function. This approach aligns with the principles of the Decorator pattern, providing a flexible and maintainable solution for room customization in the hotel management system.
  • COMMAND DESIGN PATTERN

    • In our hotel management system, we've implemented the Command design pattern by creating a centralized control panel that serves as the focal point for efficiently managing and addressing customer expectations and needs. This control panel is assigned as the default for all rooms. Within this panel, we have incorporated a range of room-specific commands, each catering to different guest requirements. These commands include RoomService, CleaningService, EmergencyCallService, SheetChangeService, TowelChangeService, WakeUpService, and a MacroService that orchestrates a sequence of actions. MacroService includes SheetChangeService, CleaningService, and TowelChangeService, and executes all three of them with one click. Through the Command design pattern, guests can seamlessly communicate with the reception by conveying their requests and requirements using specific commands. This modular and flexible approach allows for the execution of various operations, enhancing the overall customer experience. For instance, guests can request room service, and initiate room cleaning requests through dedicated commands tailored to each operation.
  • SINGLETON DESIGN PATTERN

    • In our hotel management system, we've implemented the Singleton design pattern to guarantee the existence of only one instance of our exclusive suite of rooms. This strategic approach ensures that within the overall structure of our hotel, only a single instance of the suite is created, making it possible for only one suite to be booked at any given time. Our Suite Room is designed with a private constructor, we make sure that a Suite Room is only created through the getInstance method when it hasn't been initialized before. This simple yet effective design adds a layer of control and ensures the exclusivity of our Suite Room, creating a more refined experience for our guests who choose this special accommodation.

UML DIAGRAM

UML Diagram

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages