Open-Source Internship opportunity by OpenGenus for programmers. Apply now.
In this article, we have presented the System Design of Hotel Management System in depth along with system and functional requirements, use case diagrams, architecture and much more.
TABLE OF CONTENTS
- Hotel Management System
- System Requirements
- Functional Requirements
- Use Case Diagram of Hotel Management System
- Non-Functional Requirements
- Performance Requirements
- Requirements for Safety
- Security Requirement
- Software Quality Attributes
- Functional Requirements
- Specific Requirements
- Software Interfaces
- Hardware Interfaces
- Communication Interfaces
- Architecture
- Code
- Database Design of Hotel Management System
Hotel Management System
A hotel is a hive of operations that include front desk, booking and reservations, banquets, finance, HR, inventory, material management, quality management, security, energy management, housekeeping, CRM, and others. All these operations occur at the same time, making manual management impossible. This prompted the development of property management systems, sometimes known as hotel ERP, which automate a variety of routine tasks. Hotel operations can be improved via management.
Technology is infiltrating the hospitality business, and hotels all over the world are seeking for ways to leverage it to make their operations more effective and smoother.
The hospitality industry's desire for performance and efficiency has spawned a slew of hotel management systems. If you are searching for a bigger, more comprehensive management system, these are also known as Property Management Systems (PMS) and Hotel ERP (Enterprise Resource Planning).
System Requirements
Functional and non-functional criteria are the two types of requirements that the hotel management system must meet.
Functional Requirements
Booking / Reservation:
- Keep track of reservations.
- Keep track of the customer's first name.
- Keep track of the customer's last name.
- Keep track of the number of occupants.
- Keep track of the room number.
- Show the default room rate
- Make a note of the customer's phone number.
- Indicate whether the room is assured.
- Create a unique confirmation number for each transaction.
- Make a note of the anticipated check-in date and time.
- The system must keep track of the anticipated checkout date and time.
- Customers will be checked in by the system.
- The system must allow reservations to be changed without requiring the customer to resubmit all their information.
- Customers will be checked out by the system.
- If the customer checks out after 11:00 a.m., the system will charge them for an extra night. After 6:00 p.m. on the check-in date, the system will mark assured rooms as "Must pay."
- The system will keep track of consumer feedback.
Food:
- All meals purchased at the hotel will be tracked by the system (restaurant and room service).
- The system must keep track of meal payments and payment types.
- If payment is not provided at the time of service, the system will bill the current room.
- The system must allow restaurant and room service reservations.
Management:
- Display the hotel occupancy for a certain time (days, including past, present, and future dates).
- Display expected occupancy for a given time (days).
- Revenue from a showcase room for a set period (days).
- Display food revenue for a set amount of time (days).
- Display an exception report that shows where the default room and food rates have been deviated from.
- Allow for the inclusion of data such as room rates, menu items, prices, and user profiles.
- Allow for the deletion of data such as rooms, rates, menu items, prices, and user profiles.
- Allow for changes to information such as rooms, rates, menu items, prices, and user profiles.
- Managers should be able to assign user passwords.
Use Case Diagram of Hotel Management System
This Use Case Diagram depicts the relationships between the pieces of the Hotel Management System graphically. It is the process used in system analysis to discover, clarify, and organize Hotel Management System requirements. The major components of the Hotel Management System UML use case diagram are depicted in the graphic below.
Relationships that exist between and among the participants:
Manage Hotel, Manage Rooms, Manage Services, Manage Payments, Manage Bookings, Manage Customers, Manage Users, and Full Hotel Management System Operations are examples of Admin use cases.
Manage Hotel, Manage Rooms, Manage Services, Manage Payments, Manage Bookings, and Manage Customers are examples of System User use cases.
Manage Rooms, Manage Facilities, Search Rooms, Search Customers, Create Bills, Collect Payments are all use cases for the Employee entity.
Non-Functional Requirements
In addition to the core behavioral processes outlined in the system features section, the Hotel Management System (HMS) is expected to have a number of other attributes. After discussing what is expected of the HMS, it is determined that the functional needs included in the report's system features section are critical to the system's functionality, and hence must be implemented. However, because only a few of the non-functional needs listed in this section are critical to the system's functionality, their realization may be termed inessential. Because these needs are minor aspects of how the system is supposed to operate, the system can run as intended without them.
Performance Requirements
-
Time it takes for the system to respond
Response time is one of the most important performance requirements to consider when creating the Hotel Booking System. The system must be able to respond promptly to the user's inputs and requests; any delays between the user's inputs and the system's response (if necessary) should be kept to a minimal, for example, while retrieving customer information for a booking. -
Efficiency of the System
For a system like this, efficiency is critical; during peak demand periods, the system should be able to always perform at its highest level. Efficiency, in this context, refers to how the system leverages the inputs from the users to generate the output. In some ways, even though a system produces an output, it can still be considered inefficient if the input to output ratio is negative. -
Fast Loading
Along with reaction times, the system's loading speeds must be quick. Users should not have to wait significant amounts of time to have access to information within the system.
Requirements for Safety
Other than data loss or equipment damage that is not related to the system, there are not many safety needs that can be observed with the system. However, there are still things that can be done to assist mitigate some of the hazards described above, such as keeping several backups of the system to help lessen the risk of data loss or damage on the system.
Another action that may be done is to ensure that the system is only available to authorized members of staff. This is because anyone can steal, tamper with, or delete any of the materials within the system, thus limiting access will ensure that the system is always protected from these threats.
Security Requirement
-
User Login
To prevent unauthorized personnel from accessing the system, some type of user login method will be implemented. Any member with system access will be asked to have a username and password that allows them to access the system's features. -
Levels of Access
The system is expected to have several access levels depending on which staff member is accessing the system, such as hotel personnel or management, to assist prevent unauthorized parties from accessing, viewing, or changing parts and information within the system. This means that certain features of the system will be restricted to select individuals based on their level of power inside the firm. -
Protection of Personal Information
It is critical for the company to maintain the privacy of customer information; this requirement is in line with the regulations of the Data Protection Act 1998, and thus it is critical for the system to be implemented with the goal of maintaining the data confidentiality of the customers on whom they hold information. The system is intended to be able to securely store data and retrieve it when needed.
Considering the security standards, certain information within the system may need to be restricted to select members of the company's workforce. At the highest access level, for example, information will only be accessible to authorized personnel such as hotel managers and/or supervisors; if enabled, a password may be required to access such a level. -
Verification (fingerprints, ID cards)
System authentication is by far one of the most important forms of security that should be integrated into this system, on top of all the other security measures stated above. Returning to the access levels, an authentication mechanism such as ID scanning might be used at various access levels to validate certain staff members and grant them access to specified system elements.
Software Quality Attributes
-
Availability
All authorized members of staff must be able to access the system when it is needed. Given the nature of the business, it is only natural that the system will need to be always accessible. The system must be able to withstand periods of high demand, which means that performance should not worsen as demand rises; if performance declines, the system should become unusable; nevertheless, a minor loss in performance is to be expected if the system is put under a lot of stress. -
System Maintenance
Maintenance must be a top priority for the organization to ensure that the system is constantly in top working order. After the system is installed, all users and staff members who have access to it will be instructed on how to use and maintain it. If any discrepancies or problems are discovered while the system is in operation, staff members should report them to the development team so that they may be addressed when updates or patches are applied to the system. -
Reliability
Dependence on the system is to be expected, given that most the company's business transactions are based on actions performed on the system. As with availability, there is a high expectation that the system will always run effectively. This means that the system should be able to always perform at the greatest possible level and consistently generate the intended results.
Further, the state of the system will decide how much the users can rely on it. Staff members will not be able to rely on the system to do the jobs it was designed to do if it is constantly freezing or crashing, or if it contains numerous faults and problems. However, these inconsistencies can be avoided if the development team continues to monitor the system's performance and make improvements to it through patches and updates throughout its life cycle.
Specific Requirements
- External Interface Requirements
- User Interfaces
- The system's user interface must work with any web browser, including Mozilla Firefox, Google Chrome, and Internet Explorer.
Software Interfaces
Web Server
Apache Server, OS (Windows)
Language
Java/ C++/ Python/ any multithreading capable OOP based language
Database Server
MySql, OS (Windows)
Hardware Interfaces
Server Side
- Monitor Resolution: 1024 x 768
- Processor: Intel or AMD 2GHZ
- RAM: 4GB
- Disk Space: 10GB
Client Side
- Monitor Resolution: 1024x768
- Processor: Intel or AMD 1GHZ
- RAM: 512MB
- Disk Space: 2GB
Communication Interfaces
For Internet communication, the System will use HTTP/HTTPS, and for intranet communication, it will use the TCP/IP protocol.
Architecture
This diagram depicts the components, available and required interfaces, ports, and linkages between Services, Booking, Rooms, Hotel, and Customers in a Hotel Management System.
This sort of graphic is used to represent systems using Service Oriented Architecture (SOA) in Component-Based Development (CBD). The UML component diagram for a Hotel Management System depicts the organization and wiring of physical components in a system.
Components of Hotel Management System:
- Services Component
- Booking Component
- Rooms Component
- Hotel Component
- Customers Component
Code
# Python program
# Create class for hotel data
class Hotel :
sortParam='name'
def __init__(self) -> None:
self.name=''
self.roomAvl=0
self.location=''
self.rating=int
self.pricePr=0
def __lt__(self,other):
getattr(self,Hotel.sortParam)<getattr(other,Hotel.sortParam)
# Function to change sort parameter to
# name
@classmethod
def sortByName(cls):
cls.sortParam='name'
# Function to change sort parameter to
# rating.
@classmethod
def sortByRate(cls):
cls.sortParam='rating'
# Function to change sort parameter to
# room availability.
@classmethod
def sortByRoomAvailable(cls) :
cls.sortParam='roomAvl'
def __repr__(self) -> str:
return "PRHOTELS DATA:\nHotelName:{}\tRoom Available:{}\tLocation:{}\tRating:{}\tPricePer Room:{}".format(self.name,self.roomAvl,self.location,self.rating,self.pricePr)
# Create class for user data.
class User:
def __init__(self) -> None:
self.uname=''
self.uId=0
self.cost=0
def __repr__(self) -> str:
return "UserName:{}\tUserId:{}\tBooking Cost:{}".format(self.uname,self.uId,self.cost)
# Print hotels data.
def PrintHotelData(hotels):
for h in hotels:
print(h)
# Sort Hotels data by name.
def SortHotelByName(hotels):
print("SORT BY NAME:")
Hotel.sortByName()
hotels.sort()
PrintHotelData(hotels)
print()
# Sort Hotels by rating.
def SortHotelByRating(hotels):
print("SORT BY A RATING:")
Hotel.sortByRate()
hotels.sort()
PrintHotelData(hotels)
print()
# Print Hotels for any city Location.
def PrintHotelBycity(s,hotels):
print("HOTELS FOR {} LOCATION ARE:".format(s))
hotelsByLoc=[h for h in hotels if h.location==s]
PrintHotelData(hotelsByLoc)
print()
# Sort hotels by room Available.
def SortByRoomAvailable(hotels):
print("SORT BY ROOM AVAILABLE:")
Hotel.sortByRoomAvailable()
hotels.sort()
PrintHotelData(hotels)
print()
# Print the user's data.
def PrintUserData(userName, userId, bookingCost, hotels):
users=[]
# Access user data.
for i in range(3) :
u=User()
u.uname = userName[i]
u.uId = userId[i]
u.cost = bookingCost[i]
users.append(u)
for i in range(len(users)) :
print(users[i],"\tHotel name:",hotels[i].name)
# Function to solve
# Hotel Management problem
def HotelManagement(userName,
userId,
hotelName,
bookingCost,
rooms,
locations,
ratings,
prices):
# Initialize arrays that stores
# hotel data and user data
hotels=[]
# Create Objects for
# hotel and user.
# Initialise the data
for i in range(3) :
h=Hotel()
h.name = hotelName[i]
h.roomAvl = rooms[i]
h.location = locations[i]
h.rating = ratings[i]
h.pricePr = prices[i]
hotels.append(h)
print()
# Call the various operations
PrintHotelData(hotels)
SortHotelByName(hotels)
SortHotelByRating(hotels)
PrintHotelBycity("Las Vegas",
hotels)
SortByRoomAvailable(hotels)
PrintUserData(userName,
userId,
bookingCost,
hotels)
# Driver Code.
if __name__ == '__main__':
# Initialize variables to stores
# hotels data and user data.
userName = ["U1", "U2", "U3"]
userId = [2, 3, 4]
hotelName = ["H1", "H2", "H3"]
bookingCost = [1000, 1200, 1100]
rooms = [4, 5, 6]
locations = ["Las Vegas",
"Las Vegas",
"New York City"]
ratings = [5, 5, 3]
prices = [100, 200, 100]
# Function to perform operations
HotelManagement(userName, userId,
hotelName, bookingCost,
rooms, locations,
ratings, prices)
Database Design
Database schema for the Hotel Management System:
With this article at OpenGenus, you must have the complete idea of System Design of Hotel Management System.