|ASSIGNMENT TOP SHEET Faculty of Creative Arts, Technologies & Science Department of Computer Science and Technology|
|Student Ref. No:||Unit Code CIS093-1 / CIS016-1|
|Unit Name CIS096-1 – Principles of Programming and Data Structures CIS016-1 – Principles of Programming||Deadline for Submission(s) 10:00am Friday 27 May 2022|
|Student ID: Student Name:|
|Unit Team Susan Brandreth|
|Assignment Details: Assignment 2 – Group / Individual Assignment (Hotel Online Booking and Management System)|
Instructions to Students:
Work presented in an assessment must be your own. Plagiarism is where a student copies work from another source, published or unpublished (including the work of another student) and fails to acknowledge the influence of another’s work or to attribute quotes to the author. Plagiarism is an academic offence and the penalty can be serious. The University’s policies relating to Plagiarism can be found in the regulations at http://www.luton.ac.uk/livingandstudying/qa/documents. To detect possible plagiarism we may submit your work to the national plagiarism detection facility. This searches the Internet and an extensive database of reference material including other students’ work. Once your work has been submitted to the detection service it will be stored electronically in a database and compared against work submitted from this and other universities. It will therefore be necessary to take electronic copies of your materials for transmission, storage and comparison purposes and for the operational back-up process. This material will be stored in this manner indefinitely.
I have read the above information and I confirm that this work is my own and that it may be processed and stored in the manner described.
Signature (Print Name): ………………………………………………….. Date: …………………………………..
Mitigation Team agrees that the assignment may be submitted ____ days after the deadline and should be marked without penalty.
Mitigation Team confirmation…………………………………………………………………………………………………..
All assignments must be electronically submitted using Turnitin (via BREO) by 10am on the due date. Please leave sufficient time to meet this deadline and do not leave the handing-in of assignments to the last minute. You need to allow time for any system problems or other issues.
CIS016-1 – Principles of Programming
CIS096-1 – Principles of Programming and Data Structures
Assignment No. 2 – Group / Individual Assignment
The Learning Outcomes to be addressed in this assignment:
Carry out a software project collaboratively by implementing a program following the stages of analysis, design, implementation and testing using a modern high level programming language.
Please Note: Assignment 2 for these units is usually a Group Project and you would be expected to work in a group. However due to the constraints imposed by the COVID pandemic the Assignment 2 has been adapted to allow for a student to work as an Individual.
It is very important that, whether you are working in a group or as an individual, you read this assignment brief very carefully. You should also look at related documents and guidelines, and any guidance posted on BREO under Announcements.
It is YOUR responsibility to be aware of what you have to do and what you have to submit in order to successfully pass this Assessment.
Work with colleagues in your assigned/formed group (or you can work as an individual) to develop and implement the case study which is described below.
Submit a word-processed Group or Individual Report detailing the work that you have done as part of the group (or as an individual). This Report must be professionally structured, and presented and have the required content. Please use the Report Template provided as guidance. If working in a group, all members of the group must be clearly identified (providing full name and student ID) on the title page and in the body of the report. If working as an individual, you need to clearly identify that the work is NOT group work but individual work.
You are strongly recommended to use the Report Template which will be provided.
Each group will be given a mark, but each group member will also be assigned an individual mark. Your individual mark will be influenced by your individual contribution to the development of your program as evidenced in your Group Report, and your contribution to the group presentation. See later. Due to the impact of COVID presentations on campus are unlikely to be possible. Therefore, every student will need to record and upload a video recording demonstrating the application and explaining at least some of the code.
If working as an Individual and we are back on Campus you would be expected to do an Individual presentation.
The size of the groups should not be larger than five (5) people. Assignments by a group of two (2) people are also acceptable in exceptional cases that need to be approved by the lecturer. However, you will not gain any advantage by doing so.
For those working in a Group:
You will not need to sign-up to a group on BREO (since there are two units involved). However, you will need to provide student ID numbers and names for all group members at the front of the submitted Group Report. You can also give your group an appropriate name. Each member of a Group needs to submit the Group Report. If you do not submit a copy of your Group Report you WILL NOT pass. If your name does not show on the report, this means you have not attempted this assignment.
If there is a dispute within the group, you should inform the lecturer / unit coordinator, so that a meeting with the group can be held where the matter can be resolved.
- Consider the task description as a group (or individual). In your group, agree on the features to be part of your solution to the problem described, and on how you might be able to deliver these features. (This includes determining what data may be required to support the functionality in each case). List and describe any assumptions you make.
- Develop an appropriate database to store all the required Hotel Online Booking and Management System information. Develop the required client / database or client/server system with a GUI-driven client and a server that handles appropriate requests (see Task Description).
- Code and test the critical features of the Hotel Online Booking and Management System you have identified by analysis using the range of programming features of the Java language such as I/O file operations, JDBC, Networking classes etc.
- Develop GUIs for each of the forms you need to use within the system as user interface. Note that you have 4 different users: Customer, Corporate Client, Receptionist, and Bar/Restaurant Staff.
- Make sure the database is deployed on the server side, and the users access this via a GUI-based client program.
- Please carefully design your database using your database design and SQL skills. (Please refer to the Report Template provided which has guidance on what you should include).
- Group Project Report (10-20 pages with Code Appendices)
Illustrate and justify your choices in analysis and implementation. Provide evidence that you actually tested your code. Include and explain your class diagram. Any code may go into the appendix, except core classes that you may explain in the main text. Please do not exceed the page limit as you may be penalised. (The pages in the Appendix do not count in the total page count.)
This is a formal report and attention should be given to the format of this work. You should include a title page, table of contents, heading and sub-headings (introduction, main part, summary, appendices), and Fig. Nos. and captions for diagrams, screenshots, and graphics. You are strongly advised to use the report template provided.
A Group / Individual Report template is provided on BREO.
- Video / Presentation / Demonstration (5 slides max with demonstration of your program – approx. 5 mins total)
Provide an overview of your work as a group and demonstrate your working system.
Due to the constraints imposed by COVID-19 it may well not be possible for you present your Project work on campus.
In this case, every group member (and individual if working on an Individual Project) will be required to record and upload an individual video demonstrating their working application and explaining parts of the code. [Max. 5 minutes duration.]
- Complete program code submitted as a zipped file.
Note: The lecturers / demonstrators will be happy to advise you at any stage during the development of this program.
|0||1 – 34||35 – 39||40 – 49||50 – 59||60 – 69||70 – 100|
|JDBC (30%)||No submission.||Poor. Little discernible merit.||Database created, but design not correct.||Database created, but connectivity is poor.||Good database design. Connectivity is effective.||Very good database design. JDBC connectivity working effectively.||Excellent database design and connectivity. JDBC works well.|
|GUIs and Forms (30%)||No submission.||Poor. Little discernible merit.||Forms are created but not working.||Forms are created and working.||Forms are complete with an acceptable design.||Forms are working well and complete with a good design.||Forms are working and integrated with excellent design.|
|Report (30%)||No submission||Poor. Little discernible merit.||Not structured and incomplete.||Basic structure and basic content.||Good structure, and acceptable content.||Very good structure and content.||Excellent structure and content.|
|Presentation (10%)||No submission||Poor. Little discernible merit. Demonstrates a poor level of subject knowledge.||Weak. Demonstrates a weak level of subject knowledge.||Acceptable. Demonstrates an acceptable level of subject knowledge.||Good presentation. Demonstrates a good level of subject knowledge.||Very good presentation. Demonstrates a very good level of subject knowledge.||Professional presentation. Demonstrates an excellent level of subject knowledge.|
The Group / Individual Report MUST be named with the Group Name or Student ID.
Upload the .doc, .docx or .pdf file via the Assignment 2 Group / Individual Report submission link provided on BREO.
The zipped program code MUST be named with your Group Name and Student ID (or just Student ID if submitting individual work)
Video Recording – Demonstrating and explaining your program. 5 minutes maximum. This needs to be uploaded as an individual recording by every student
Submission of both reports and your zipped program code must take place before 10:00am on Friday 27 May 2022 using the appropriate links provided on BREO.
Capture and save evidence of submissions in a word document.
You will be asked to demonstrate that the work submitted is all your own work. Failure to convince us that the work is your own during the presentation may result in failure of the whole group or individual group members!
Please note that all submissions with will checked for similarity to other sources, and evidence of plagiarism may be severely penalised.
Hotel Online Booking and Management System
You need to create a GUI desktop application to meet the requirements of this scenario. A database needs to be created to store, at least, customer information, booking information, as well as room information.
The task of your group (or as an individual) is to implement the Hotel Online Booking and Management System containing the functionality shown in the Use Case Diagram in Error! Reference source not found., taking the different user roles (customer, corporate organization, receptionist, and bar/restaurant staff) into account.
Consider the following scenario:
Luton Hotel is a large independently run hotel (ie. it is not part of a chain) located in the town of Luton. It offers a variety of accommodation (single, twin and double rooms) all of which offer en suite facilities, a telephone with an outside line and a mini-bar. The hotel has a bar and a restaurant, where guests may take refreshment and charge this to their room bill. Room service is also available. Services not offered by the hotel itself (for example, dry cleaning) can be ordered by guests through the hotel receptionist and charged to their room.
The hotel would like to provide an online service for customers (individual or corporate) to book rooms and to check their room bookings.
Non-corporate customers must register online before making a booking. Companies need to set up an account with the hotel before making a corporate booking and they are billed at the end of each month for bookings that have been completed since the last invoice was sent. A typical corporate client is Luton University, and during months such as February and June when examination boards are taking place as many as 30 or 40 guests may be staying at the hotel on the University account. At other times there may be only a few. A discount is negotiated for each corporate client when their account is set up and is reviewed annually.
Non-corporate customers who are not registered yet need to register (providing their address, phone number, email address and credit card information). A registered customer should be able to book a room, ie. provide the check-in and check-out date and if a double or single room is required. Customers should also be able to view their bookings and change or cancel them if needed. All these operations are only possible after a customer signs in (which means they must be registered). Your system should also check if the requested room (single, twin or double room) is available for the time of stay.
After a booking is made, receptionists must assign an appropriate room to each booking, matching the customer’s demand regarding single twin or double room. To determine whether a room is available during the requested time period, the receptionist should be able to see existing bookings per room.
A database needs to be created to store customer/corporate client data (name, address, email, telephone number etc) and booking information (start and end date, single, twin or double room) as well as room information, indicating whether a room is a single, twin or double room. Each booking must be assigned to exactly one single, twin or double room as indicated in the booking.
When a booking request is made the receptionist first checks whether there is a suitable room or rooms available on the required dates. For corporate clients, a guaranteed booking is then made. For individual clients, the Hotel requests credit details before the booking can be guaranteed. If these are not provided the booking is considered unguaranteed. In either case, the booking is now considered to be active. At any point up to when the guests check in, the booking can become guaranteed by the customer providing credit card details. A booking can be cancelled at any point up to when the guests check in.
When the guest checks in, the booking becomes active. At the end of their stay the guest checks out and their booking is completed. If they are an individual guest they must at this point pay their bill in full, and it becomes paid. Corporate guests must check out and their booking becomes completed, but is only paid when the monthly invoice is sent to the corporate client. Booking records are kept on the system for six months before those that are cancelled or paid are archived.
Figure 1: Hotel Online Booking and Management System Use Case Diagram
As a guide, the functionality of the Hotel Online Booking and Management System is shown in the Use Case Diagram in Figure 1, taking the different user roles (customer, corporate client, receptionist, and bar/restaurant staff) into account.
Use Case Specifications/Description
A specific room is allocated to each guest.
An unguaranteed booking may become guaranteed on provision of credit card details. Other changes (for example to the composition of the party or to the dates booked) may be made on the customer’s request.
Calculate Bill Total
The total bill for a room comprises the cost of the room plus any items charged to it (for example, from the minibar, hotel bar or restaurant and any additional services provided) plus the appropriate rate of VAT.
A customer may cancel a booking any time before checking in. The booked accommodation is de-allocated.
Charge Item to Room
A guest may use items from the minibar in the room, make external telephone calls, make purchases from the hotel bar or restaurant or order additional services such as laundry. These items are charged to the guest’s room. An external service ordered by the guest may also be charged to their room (although some services, such as taxis, will be paid for directly by the guest).
Check In Guest
When a party (one or more guests) arrives at the hotel each guest is checked in and the booking becomes registered. Details of all the guests are confirmed, or if they have not been given at the time of booking they are recorded. The method of payment (by which guest(s) or whether to be charged to a corporate account) is confirmed. Accommodation is allocated if not already done at the time of booking and special requests are recorded.
Check Out Guest
Before the guest leaves the hotel they need to check out and the booking becomes completed. The receptionist provides them with the total room bill, which an individual customer must pay. If the bill is to be charged to a corporate customer the guest is asked to check and sign the bill, it is then added to the appropriate corporate account.
Make a Booking
When a customer contacts the receptionist with a booking request the receptionist checks the room occupancy for the required period and if the customer’s needs can be met, makes a booking.
A guaranteed booking is only made for corporate customers or for individual customers who supply credit card details.
Accommodation may be allocated at this stage; alternatively where it is a group booking (for example, for 6 twin-bedded rooms) the allocation of each guest in the party to a specific room may be done on checking in. Either way, occupancy records are updated to avoid double booking.
Order External Service
Services not offered by the hotel itself can be ordered, once their availability has been checked. The guest name, room number and details of the service required are taken when the service is ordered.
Provide Guest with Current Bill
On request a guest may be provided with the current total of their bill.
Please note that client-server architecture (network/sockets programming) as outlined below is not essential in order to achieve very high marks for this assignment.
Ideally, the whole system should be based on a client-server architecture, where the database is deployed on the server, and the users are given access to the database via the client graphical user interface (GUI). The server should speak to the database and the client GUI should speak to the server only (not to the database). Figure 1 depicts this situation.
Clients should send simple requests with parameters (for instance “book_room, customer135, 08/03/2021, c244, 9” to send a new booking to the database or “view_bookings customer123” to view the bookings for a specific customer) to the server. The server should process these requests and create suitable SQL statements. Results from the database should be set up accordingly and sent to the client as a response. For instance, if the request was “view_bookings customer135” the server should return the bookings assigned to customer135 fetched from the database. One task of the server will be to translate the requests to SQL statements and turn the results from the database into a proper response to the client.
To get the maximum full marks (100/100), you do not need to implement a client/server solution as indicated above. Groups who do not follow this architecture (where for instance their GUI directly accesses the database) will still be able to pass with the maximum achievable marks. Groups who implement the required functionality but without a database/JDBC and a server will attract 60/100 marks maximum. You need 40 marks to pass. This is a group assignment but an individual assessment, but single group members may attract different marks based on their contribution to the group (determined for instance by peer assessment and the presentation).
Background: Why a client/server application?
You may ask yourself, “Why do we have to develop a server? Isn’t it sufficient when the client GUI speaks to the database directly?”. The reason is that many of today’s applications are like this. (If you create a Facebook client, do you want it to talk to the Facebook database directly or wouldn’t it better to make use of Facebook’s API, which would be more convenient?).
One of the advantages of the client/server architecture is that it provides a simple API for clients so they don’t have to bother with storage and database issues.
Consider the case where you no longer want to store the data in a database, but in some other data structure – for instance files, a Cloud storage or a NoSQL database. (Services like Google and Facebook have been changing their backend storage several times in their history). If each client speaks to the database directly (using embedded SQL commands), you would have to re‑implement each single client (and there can be several client implementations around for a server). In a client/server scenario, you would only need to update the server implementation to cope with your new storage. No client needs to be touched. Therefore, there are good reasons to provide an API and a further abstraction layer such as we propose in this assignment.
Note: For this assignment, All the Images will be provided along with the complete sample report, once you pay the 6 USD charges.