代写 html Java javascript SQL database software security COMP1041 Coursework2: Hotel Management Website

COMP1041 Coursework2: Hotel Management Website
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 leads to a zero mark for this coursework.
The manager asked you to build a website that provides the following basic functionalities:
1. Allow guests to book rooms or cancel room bookings.
2. Allow hotel staffs to check the status of rooms, including current and future
bookings.
You will need to apply all the knowledge that you acquired throughout the DBI course. The deadline is 4 pm on Wednesday, the 15th of May. Late submission will result in 3 marks loss per workday and you cannot submit after 4 pm on Monday, the 20th of May.
This assessment contributes 25% towards the overall module grade. Your submission will be marked on the school’s cslinux server. Subsequently, your code must work on the PHP and MySQL installations on cslinux. “It works on my machine” is not a valid argument when questioning your grade for this assessment. You will also need to include a clear reference document of your website, describing all functionalities.

Core Functionality
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 apply your own judgement to any detail that is not precisely specified below.
The website must allow a guest to book a room or cancel a booked room. A registered guest will have a username, guest’s real name, passport ID, telephone number and email address. There is no current requirement for users to be able 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 website must also allow new users to be registered.
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
VIP Room
Room X13
Stairs & Lobby
Small single bed
Room X06
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

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 above. 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.
To book a room, a guest needs to specify the check-in date, check-out date as well as the type of the room. After this, he will be presented with a page that allows him to choose the specific room to stay in. Note that choosing the room number is not a required step for guests. A guest can book multiple rooms for himself and his friends, but he is only allowed to stay in one of the booked rooms when he checks in. One does NOT need to have a user account in the HMS for him to be able to stay in the hotel, but his passport ID must be registered when checking in.
Staffs can view and change the booking status of all rooms inside the Sunny Isle. Each staff account is associated with a username, password, telephone number and staff ID. Staffs should be able to log in through a different entrance of the HMS. When a guest and his friends/family members arrive at the hotel, the staff register them and map their passport IDs to their booked rooms. In HMS, you need to clearly indicate the status of a room for guests and staffs. That is, whether a room is booked, occupied or empty. The staff should be able to see all booked dates of a specific room. For privacy issues, guests only know whether a specific room is available during their intended stay period.

Additional Functionality:
The manager of the Sunny Isles Hotel wants to provide a web interface 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 three days per week. The weekly work schedule for each chef is fixed and you may decide which days he will work in. When creating chef list, make sure that the work schedule of all chefs covers all days of a week. You can input the information of chefs directly into the database. Providing a web interface for editing chefs is not required but is certainly welcomed.

CW2 Deliverables (Add 22-Apr-2019)
Your original code should be submitted to moodle. Automatically generated JavaScript or PHP code is NOT considered to be original.
In your reference document, provide the following information:
1. What external libraries are used?
2. A brief walk through of your HMS.
3. Mandatory: Part of the requirements has strikethrough effect, which means
you no longer need to implement these functionalities. However, in the reference document, state how would you design your database if you were given the chance to implement them. This includes:
a. Your Entity-Relationship Diagram,
b. Your SQL “create table” statements, they must be valid ones.
c. A brief discussion on why/how your design will work.
The format of CW2 Submission on moodle:
Everything should be packed in a zip file. The file name of the zip file should follow this format: YourID_givenName_familyName.zip
For example: 123456_Jianjun_CHEN.zip
In the root folder of the zip file, you need to include:
1. A folder called “src”, storing all your original code. Your SQL scripts used to create your tables should also be stored in this folder.
2. A folder called “published”, storing the generated code. If you code everything yourself, you don’t need to create this folder.
3. A document called “Reference.docx” or “Reference.pdf”, which is your reference document.
Failing to follow this requirement will lead to mark deduction (-1 of 25).

Technological Requirements
The website and its information must be written using the technologies presented during the course of this lecture.
• MySQL – Should be used to store the information used in this system (Users, Matches and any other data required to run your implemented MMS).
• PHP – Should be used to authenticate users and manage the data being used in the system.
• HTML – Should be used to specify the structure of the interface (the website) and its data that users interact with.
• CSS – Should be used to inform the styling and aesthetic appearance of the MMS.
• JavaScript – Should be used for client-side validation and dynamic updates of
the website (if necessary) e.g. AJAX.
Third party libraries can be used but must be fully open source whose license allows for use in a commercial/enterprise setting. You must detail any third-party libraries used in the reference document (detailed below).
Your system must be deployed and operational on the school’s cslinux server. You may not use external, third party hosting providers.
You should test your final website on a variety of different browsers but should ensure it displays well on the latest version of Google Chrome or Firefox. There is no requirement for this coursework to render well on a mobile device, only a desktop environment. Your HMS should function and appear as desired on the university’s lab machines.
Your system will be tested in the latest version of Google Chrome and Firefox on a monitor with a resolution greater than (or equal to) 1366×768.

Notes
Here are some general notes/warnings regarding the coursework. (Note – this might get updated during the coursework period as new questions/observations come in.)
● Be careful with PHP versions, cs-linux runs a particularly old (PHP 5.3.3) version of PHP. Ensure that any language features or libraries you use are compatible with the installed version of PHP. No updates or software installation will be performed. The reasons for this were explained in lecture – this is not something we are able to control.
● Sometimes debugging PHP can be problematic since, by default, it does not provide us with error messages or run-time errors. To enable these errors, try adding the following 2 lines to the top of your PHP script:
error_reporting(E_ALL);
ini_set(‘display_errors’, 1);
● For MySQL, build tables within the database you have been using during labs. Be careful with software versions again – but this affects MySQL a lot less than PHP (see above point).
● Test, test, test! Getting a system like this to work correctly and as expected requires a significant amount of testing, be it automated or manual.
● Validation. Remember what you were taught in class, validate both on the client and server side. Security and data integrity is a key aspect of web based systems. Ensure that your application correctly handles any input data from users.
You may use Visual Studio Code to help with debugging PHP or find general syntax errors. The debugger plugin is available in the VS Code marketplace:
https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug

IMPORTANT: Resource Licenses
It is important that you use images legally! You can search for images licensed under creative commons. To do so, you need to filter the image search results using creative commons license.
IMPORTANT: Library and Template (Updated on 22 April)
Using library is permitted. But using templates on GitHub or other places is considered to be plagiarism! You will get ZERO mark if I notice that.