Past Coursework: Hotel Management System
Introduction
Sunny Isle is a small but famous hotel in the east region of Lukewarm Kingdom. People from all over the world visit this place for a nice and comfortable holiday. Due to such popularity, the owner of the hotel decided to expand his hotel and adopt a new hotel management system (HMS) to ease the management process. You are the only one chosen to design and implement this HMS because the manager is not willing to pay more than one person. Apart from that, if you copy any code from others or let someone else develop this HMS, the manager will be disappointed and immediately report this to me. Plagiarism and collusion leads to a zero mark for this coursework.
The manager asked you to build a Java application that provides the following basic functionalities:
1. Allow guests to book rooms or cancel room bookings.
2. Allow hotel staff to check the status of rooms, including current and future
bookings.
3. Allow guests to order meal during their stays in the hotel.
Room Booking Requirements
Below is the detailed description of the minimum functionality expected in the HMS. You must use this specification to develop the functionality of the system. You may make plausible assumptions to any unspecified details with sufficient justification in your report.
This HMS application is designed for both hotel guests and staffs. When this application is started, it should first prompt the user which mode it should work in. If the user selects staff mode, room management options should be presented. If the user selects guest mode, room booking options should be presented.
Guest Mode
The application must allow a guest to book rooms or cancel booked rooms. A registered guest will have a username, guest¡¯s real name, passport ID, telephone number and email address. There is no current requirement for guests to update their details, but you may add this functionality if you wish. To log in, a guest is required to input his username and password correctly. Your application must also allow new users to be registered.
Rooms in the Sunny Isle Hotel have four different types:
1. Large room with double beds.
2. Large room with a large single bed.
3. Small room with a single bed.
4. VIP room.
The plan view of the floors of the hotel is shown below. The room number starts from the room in the top-left and increases clock-wise. For simplicity, all floors of this hotel share the same plan view. The ¡°X¡± in ¡°Room X01¡± refers to the floor number. The hotel has 10 floors in total. I used a table to represent this plan view, but you can use any other methods to represent it in HMS when guests select their rooms.
Large double bed
Room X01
Large double bed
Room X02
Large single bed
Room X03
Large single bed
Room X04
Small single bed
Room X05
Small single bed
Room X06
VIP Room
Room X13
Stairs & Lobby
Small single bed
Room X07
Large double bed
Room X12
Large double bed
Room X11
Large single bed
Room X10
Large single bed
Room X09
Small single bed
Room X08
To book a room, a guest needs to specify the check-in date, check-out date and room type. If the room is not occupied in this period, he will be presented with an option that allows him to choose the specific room to stay in. Note that choosing the room number is not a required step for guests. If he chose to skip, an empty room of the same type should automatically be arranged for him. A guest can book multiple rooms for himself and his friends.
Staff Mode
Staffs can view the booking status of all rooms inside the Sunny Isle. Each staff account is associated with a username, password, telephone number and staff ID. In HMS, you need to clearly indicate the status of a room for guests and staffs. That is, whether a room is booked or empty. The staff should be able to see all booked dates for a specific room. For privacy issues, guests only know whether a specific room is available during their intended stay period.
Food Service Requirements
The owner of the Sunny Isles Hotel also wants to provide for guests to book their meals. A meal can be prepared at any time from 7:00 am to 10:00 pm and can only be booked two days in advance. A meal contains a list of dishes that will be prepared by several chefs. Each chef in Sunny Isle can only prepare a set of dishes he knows and only works in certain days in each week. The weekly work schedule for each chef is fixed.
Here is the information about chefs:
1. Karen Adam: Monday to Friday
a. Dishes: shrimp soup, cauliflower and mushroom stew, spicy chicken
nuggets, steamed cod fish, turkey burger, veggie burger, fried egg.
2. Hari Philip: Wednesday to Sunday
a. Dishes: chicken curry, chicken masala, mutton Korma, keema curry, mushroom tikka, fried egg, curry rice.
3. Thalia Hensley: Monday, Thursday and Saturday
a. Dishes: tofu teriyaki, shrimp tempura, yaki udon, chicken katsu, salmon
sashimi, fried egg, curry rice.
4. Nisha Moss: Tuesday, Saturday and Sunday.
a. Dishes: black pepper beef, pork chowmein, sweet & sour pork, gongbao chicken, pork jiaozi, soy glazed pork chops, curry rice.
Past Task Specification
You are asked to design a java console program for the hotel. It should interact with users through text messages. For example, after a user has logged in, he will be presented with a list of choices:
1. Book a new room
2. Book a meal
3. Cancel a room
4. …
The user selects a choice by typing a number and pressing enter. He will then be presented with the next list of choices. The text messages of this program are totally up to you and badly designed messages (unclear, wrong and misleading messages) will lead to mark deduction.
The final program is for both assignment 1 and 2. Room booking functions are considered as assignment 1. Staff mode and Food Service are considered as assignment 2. If you can design a GUI program (Java AWT/Swing or JavaFX) for HMS, you can have up to 5 bonus marks that will be added to your assignment 2. Your final marks for each assignment, however, will not exceed their full marks.
You also need to provide a report for this project. In your report, provide the following information:
1. The design of your database: Your Entity-Relationship Diagram. You should also include your explanation of your own database design in the report.
2. A user guide of your HMS. For example, how to book a room, how to login and how to book a meal. You also need to tell me critical information like the default username and password for your HMS if you have any. But DO NOT GIVE ME your password to your university account.
Lab Task
1. Design the database, write down the CREATE TABLE statements and then create the ER diagram.
2. As a lab task, you are not required to do java programming. Instead, list all reasonable operations of the database, and design their SQL SELECT statements.
CREATE TABLE SQL:
https://www.learningmall.cn/pluginfile.php/69458/mod_resource/content/0/create _tables_sql.txt
ER diagram:
https://www.learningmall.cn/pluginfile.php/69457/mod_label/intro/full_db_design. png