Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Definition of problem
The Bridge hotel wishes to set up an automated booking system. The system will store details on customers, rooms available, prices and bookings. The system is to produce reports on bookings, room availability and customer invoices.
2. Analysis
Q. How do you store this information at present? Jenny: It's all on paper. Basically I keep a large diary and write down each booking in the appropriate dates.
Q. What is the procedure when someone rings up to book a room? Jenny: I ask what dates they would like, then I look in the diary at what rooms, if any, are available on those dates. If there are then I tell them the types of rooms that are available and the prices. Once they've chosen a room type I take their details, write these down in a customer book and book an appropriate room in the diary.
Q. What about cancellations? Jenny: I simply cross them out in the diary. It can get a bit messy sometimes.
Q. Have rooms ever been double booked by mistake? Jenny: Yes. As I said before, the diary can get a bit messy and mistakes can be be made. We have had to ask other hotels to take in our customers. We hope that wouldn't be a problem if we computerised the system. Another thing that would be nice is if we could print a sheet out each day so we can see at a glance what rooms are to be made ready for that day and customer details.
Q. What about creating customer invoices? Jenny: We have an invoice book. We look at the diary at what room was booked, The price, and how long they booked it for. We then work out the cost by hand.
Q. How much experience do you have of computers? Jenny: I did a basic course a year ago.
Q. What computer facilities do you have at present? Jenny: We have a new PC with a printer.
B) Current System
Bookings are made by phoning the desk and the details are entered by hand. Cancellations are made in the same way by simply crossing out the entry.
Issuing instructions for the rooms to be made ready that day are written by hand with the information gained from the diary.
Present problems
Easy to use
Produce invoices.
D) Information:
Each room has a number. There are three types of rooms, family, double and single. The hotel charges the customer by per person per night. They can be on any of three floors and some have satellite tv.
1.
The ground floor comprises an equal number of single and family rooms family rooms may accommodate up to 4 people with 1 double bed and 2 single, rollaway beds and a cot may also be provided for a baby (4+1).
The first floor comprises an equal number of single and double rooms.
The second floor consists of an equal number of double and twin rooms twin rooms contain 2 single beds as opposed to double rooms, which contain 1 double bed.
All double, single and twin rooms include satellite TV with a pay per night option and a mini bar the family rooms do not, but do include a TV with video/dvd and the option to hire a games console and games over night.
Single and twin rooms offer internet access for business guests at a small nightly rate.
There are 2 fully equipped conference rooms and 1 larger function room (with bar and service to kitchen).
Tariff
All prices shown are per night:
Rooms Single Room Double Room Twin Room Family Room (up to 4) Family Room (4+1) 35 55 55 75 85 (includes cot)
Optional Meals Included Breakfast (pppn) All Meals Set Menu (pppn) 10 30
Other Options Satellite TV (pay per night) Games Console and Game Hire Internet Access 10 10 5
Conferences and Functions Conference Room (per hour) Function Room (per hour) Service Staff (person per hour) 40 80 10
Contents
Analysis User Requirements Analysis Notes Technical Documentation Test Plan / Test Results User Guide Conclusion & Future Developments Additions / Appendix
Example Invoice Additional Designs Bridge Hotel Logo
Problems with present system Searching for available rooms time consuming Rooms could be double booked Instructions for room preparation can be mistaken Any changes are written by hand, and could make it unreadable, resulting in mistakes Customer invoices calculated and written by hand, again possible mistakes with the calculations could be made
User Requirements Has to be easy to use Booking has to be faster Keep customer records Produce Invoices for the customers Produce reports showing what rooms are to be made ready or cleaned for a specific day. No Double-bookings permitted in the system Cancellations can be done easily decrease paperwork
Alex Cooper Database Design: Analysis Analysis Notes: Information about the hotel
Hotel: Each room has a number Three types of Room o Family o Double o Single Charges per person per night Can be on any of the three floors Some have satellite TV 2 conference rooms 1 function room
Ground Floor: (Room Numbers 101-110) 5 Single Rooms 5 Family Rooms First Floor: (Room Numbers 201-210) 5 Single Rooms 5 Twin Rooms Second Floor: (Room Numbers 301-310) 5 Double Rooms 5 Twin Rooms Dates: The hotel is closed 22nd December to January 7th Rooms: Prices Rooms Single Room 35 Double Room 55 Twin Room 55 Family Room (up to 4) 75 Family Room (4+1) 85 (includes cot) Optional Meals Included Breakfast (pppn) 10 All Meals Set Menu 30 (pppn) Other Options Satellite TV (pay per 10 night) Games Console and 10 Game Hire Internet Access 5 Conferences and Functions Conference Room (per 40 hour) Function Room (per 80 hour) Service Staff (person per 10 hour) All Double, Single & Twin rooms include Satellite TV (pay per night option) & minibar (except the family room which just has the TV and option to hire games console/games) Internet access available to Twin and Single Rooms at nightly rate
Technical Documentation
Alex Cooper
Contents
DATA DICTIONARY SPLITTING INTO THE VARIOUS ENTITIES (TABLES) DATA DICTIONARY / ENTITIES LIST (IN ATOMIC FORM) CUSTOMER BOOKING CREDIT CARD ROOMS VALIDATION INPUT (USING INPUT MASKS) ENTITY RELATIONSHIP DIAGRAM (ERD) FORM DESIGN STRUCTURE OF DATABASE INITIAL START UP SCREEN (MAIN SCREEN) CHECK ROOM AVAILABILITY FORM CREDIT CARD ENTRY FORM CUSTOMER DETAILS FORM BOOKING FORM BOOKING FORM DESIGN NOTES: ADDITIONAL NOTES (FOR ALL FORMS) INVOICE DESIGN HI-FI DESIGNS MAIN SCREEN (MENU) ROOM AVAILABILITY FORM CUSTOMER DETAILS FORM CREDIT CARD FORM CREDIT CARD FORM
6 6 7 8 8 8 9 9 9 12 13 13 14 14 15 16 17 18 18 19 21 21 22 23 23 24
Alex Cooper
BOOKING FORM REPORTS FORM ERD PRODUCED IN ACCESS 25 26 27
Data Dictionary Field Name Customer Name Address Post Code Telephone Number Booking Number Arrival Checkout RoomNum PricePerNight Room Type Cot Satellite TV Games Console Internet Access Breakfast All Meals Credit Card Number Credit card Expiry Date Data types Text Text Text Text AutoNumber Date/Time Date/Time Number Currency Drop Down Menu Yes/No Yes/No Yes/No Yes/No Yes/No Yes/No Text Date/Time
Here is a list of all the attributes that I have identified. This database needs to be normalised so that there is no redundant data and any unnecessary repeated entities are removed to ensure integrity of the database. On the following pages are shown how the database is normalised.
Alex Cooper Field Name Customer Name Address Post Code Telephone Number Booking Number Arrival Checkout Room Type Cot Satellite TV Games Console Internet Access Breakfast All Meals Credit Card Number Credit card Expiry Date Room Number Room Type Price Per Night Data types Text Text Text Text AutoNumber Date/Time Date/Time Drop Down Menu Yes/No Yes/No Yes/No Yes/No Yes/No Yes/No Text Date/Time Number Text Currency
The table is colour coded to represent the different entities (four entities).
Alex Cooper From the table above I have included I have included additional attributes to make the entities atomic attributes , which means that the attributes can not be broken down any further, for example the address attribute is broken down in address line 1, address line 2, Town. Customer Field Name CustomerID FirstName LastName AddressLine1 AddressLine2 Town\City PostCode Telephone CreditCardNumber Booking Field Name BookingID Arrival Checkout CustomerID RoomNumber Nights Cot required Nights Satellite TV required Nights Games Console Required Nights Internet Access required Nights Breakfast required Nights All Meals required Hours Required Staff Required Credit Card Data Type Auto Number Date\Time (Short date) Date\Time (Short date) Number Number Number Number Number Number Number Number Number Number Field Size\Key Primary Key N/A N/A Foreign key Foreign key N/A N/A N/A N/A N/A N/A N/A Data Type Auto Number Text Text Text Text Text Text Text Number Field Size \ Key Primary Key 30 30 30 30 30 (use input mask as well) (10) (use input mask as well) (13) Foreign key
Alex Cooper Field Name CreditCardNumber ExpiryDate CardHolderName Data Type Text Text text Field Size\Key 20 (Primary Key) (short date) 30
Rooms Field Name Data Type RoomNumber Number RoomType Text (Combo Box) PricePerNight Currency CotAvalable Yes/No SataliteTVAvailable Yes/No GamesAvailalable Yes/No InternetAvaliable Yes/No Validation Table Booking Field Name ArrivalDate Validation Text Not Between "Hotel is #22/12/05# And closed on #07/01/06# this day please try another date" Validation Rule Field Size\Key (Primary Key) (Single/Double/Twin/Family/Confrence/Function)` n/a
Input (using input masks) Table Customer Customer Field Name PostCode Telephone Input Mask >LL00\ 0LL;;_ \(9999") "00090009;;_ Place Holder used _ _
Query Criteria Description Rooms PARAMETERS [Please enter Reserved arrival date] DateTime, [Please enter checkout date] DateTime; SELECT Booking.Room, Booking.Arrival, Booking.Checkout FROM Booking WHERE (((Booking.Arrival) Between [Please enter arrival date] And [Please enter checkout date]-1)) Or ((([Checkout]-1) Between [Please enter arrival date] And [Please enter checkout date])) Or (((Booking.Arrival)<[Please enter arrival date]) And (([Checkout]-1)>[Please enter checkout date]-1)); Checks SELECT Rooms.RoomNum room FROM Rooms LEFT JOIN availability [Rooms Reserved] ON (uses Rooms.RoomNum=[Rooms Rooms Reserved].Room Reserved WHERE ((([Rooms Query Reserved].Room) Is Null)); Rooms None (combines Rooms Available Available query and Rooms and Room table type invoice of Staff, Breakfast, Set details for a Meals, Arrival, Checkout report
Reports Produced No
No
Rooms table and Rooms Available Booking Rooms Credit Card Number, First Name, Surname, Address line 1, Address line 2, Town, Postcode, Telephone Number, Booking ID, Customer Number, Room Num, PricePerNight, Cot, Satellite TV, Games console and game hire, Internet Access, , Number of hours needed, Number Bookings Rooms Room type, Arrival, RoomNum
No
Yes
Arrival=Date()
Yes
Checkout = Date()
Bookings, Rooms
Yes
10
Alex Cooper rooms need cleaning for guest departure Daily Room Clean Rooms Query (shows the features available in the room Room type, checkout, Room Num
Bookings, Rooms RoomNum, Yes Room Type, Arrival, Checkout Rooms RoomNum,Type,Intenret,Cot,meals, Breakfasts, games console, satalite
11
Alex Cooper
Many
One
BookingID Arrival Checkout Many CustomerID* RoomNumber* Many Nights Cot required Nights Satellite TV required Nights Games Console required Nights Internet Access required Nights Breakfast Required Nights All Meals Required Hours Required Staff Required
One
From the Entity Relationship diagram we can see that this is in third normal form because I have made sure there is no repeating attributes, I have created a separate entity for each group of related data each with their own primary key these are necessary to make it into first normal form. To then to make it into second normal form I have created relationships between tables using foreign keys. Finally to make it into third normal form I have ensured that all attributes that are not dependent upon the primary key have been removed.
12
Quit button
13
Alex Cooper
Command Buttons
Label
Reports
Quit
Form caption
List Box (From the Rooms and Room Type Query displays the rooms and rooms type according the dates entered in the query)
14
15
Lookup wizard of the credit card number (showing number, expiry data and Card Holders name)
Navigation Buttons
16
Booking Form
Arrival Checkout
Check Availability
Customer ID
3
Conference / Function Rooms only
Nights Cot Required No. of Breakfasts (per nights) No of Set Meals (per night) Internet (Per night) Satellite TV (Per night) Games Console (Per night)
Hours Required
Staff Required
To Create a new Booking, click on the 'New Booking' Button below. To Delete the current Booking, click the rubbish bin button. To navigate the bookings, click the arrows to cycle through the bookings
Add Record
Navigation Buttons 17
Alex Cooper Booking form Design notes: 1. Drop down combo box (Lookup wizard) showing the Customer ID, First Name, Last Name and Postcode (from the Customer table). This enables the user to easily see which customer they are using. (the other details are hidden once the Customer number is selected) 2. Drop down combo box (Lookup wizard) showing the Credit Card number, expiry date and card holders name (from the credit card table) This enables easy viewing of the Credit card details, so the bookings are more accurate because the user can see the full card details (the other details are hidden once the card number is selected) 3. Drop down combo box (Lookup wizard) showing the Room Number, Room type and Price Per Night (from the Rooms table). Additional Notes (for all Forms) Most of the data entries fields have help text, so that when the user moves the mouse pointer over the field, then a brief description is displayed in the status bar.
18
Alex Cooper Invoice Design Query to get the Report Query Criteria Description
Invoice
RoomNum ber = [Enter Room Number] Checkout = date()
19
Alex Cooper
Customer Invoice
Arrival:
Checkout:
Room Room No. Room Type Price per Night Number of Nights stayed: Accommodation Cost: Extras Satalite TV Games Console Internet Cot Full Meals Breakfast Total Inc VAT
20
Alex Cooper Reports for Queries Query Daily Room Clean Rooms to Clean when guest leaves Rooms to prepare for guest arriving Layout Columnar (sorted ascended by room date) Columnar (sorted ascended by room date)
Hi-fi designs
Main Screen (menu)
21
List of available rooms based on the dates input. (In this case 12/12/05 and 13/12/05)
22
Onscreen instructions
23
Alex Cooper
Onscreen Instructions
24
Runs a query to show the features available in each of the rooms (see additional designs)
On screen instructions
25
Alex Cooper
Reports Form
26
27
Breakdown of any additional charges to the room such as satellite TV, games console etc (charged per night)
28
Alex Cooper Sample Report: Daily Room Cleaning (14th December 05)
Room type Guest arrival date Guest departure date Room Number
29
Alex Cooper Sample Report: Guests Arriving Today (14th December 2005)
30
Alex Cooper Sample Report: Rooms to Prepare for Guests leaving (15th December 2005)
Room number
Room Type
31
Alex Cooper Test Plan / Test Results My test procedure to test this database is to verify each component of the database. This is done by checking to see if the actual outcome of the test is the same as the expected, for instance, when testing command buttons, that the expected operation, such as loading a form, is executed. I will be recording the tests in the table below, with space for any comments. Test Num 1 Test Description Testing to see if the database loads and shows the main menu Booking Form Check that hotel can not be booked during 22nd December to January 7th Booking Form Check that rooms can not be booked during 22nd December to January 7th Booking Form Check that rooms can not be booked during 22nd December to January 7th Booking Form Check that the rooms can be booked any other date apart from the specified closing date Rooms Available Query Main menu Test if the check room availability command button works correctly Main menu Test if the quit command button exits the database Test Data N/A Expected Result Database to load and show menu Error Message saying Hotel Closed on this day Error Message saying Hotel Closed on this day Error Message saying Hotel Closed on this day Actual Result Database loaded and menu displayed Message saying Hotel Closed on this day Message saying Hotel Closed on this day Message saying Hotel Closed on this day The validation is only for the year 05/ start of 06. the database needs to be changed according to the year OK Comments
22/12/05
31/12/05
07/01/06
11/04/05
12/12/05
N/A
All Apart from All Apart room 120 Free from room 120 Free Input box Input box requesting to shown asking enter the to enter an arrival date arrival date Database Exits Database exited
N/A
32
Alex Cooper 9 Main menu Test if the View / Add Customer command button works correctly Main Menu Test if the View / Add Credit Card Command button works correctly Main Menu Test if the View / Add Booking Command button works correctly Main Menu Test if the Reports commands button works correctly Check Room Availability (when command button clicked on main menu) Check Room Availability N/A Customer Customer Details form to details be displayed formed displayed Credit Card Credit Card Details form to Details form be displayed displayed
10
N/A
11
N/A
Booking form Booking to be displayed form displayed Reports form Reports form to be displayed displayed
12
N/A
13
N/A
13
12/12/05
14
15/12/05
Input box to be displayed requesting arrival date Input box requesting checkout date to be displayed All rooms apart from room 110 and 108 to be available Current Record to be deleted A new record to be created
This is based on 7 bookings (Room 110 booked from 12/12/05 to 15/12/05 and Room 108 booked from 14/12/05 to 17/12/05)
15
16
17
18
19
Customer Details Form Test if the delete record command button works Customer Details Form Test if the add new record command button works Customer Details Form Test if the forward command button works Customer Details Form Test if the previous command button works Credit Card Details Form Test if the delete
N/A
N/A
N/A
The next Record to be shown The previous record to be shown Current Record to be deleted
N/A
N/A
Alex Cooper record command button works Credit Card Details Form Test if the add new record command button works Credit Card Details Form Test if the forward command button works Credit Card Details Form Test if the previous command button works Booking Form Test if the delete record command button works Booking Form Test if the add new record command button works Booking Form Test if the forward command button works Booking Form Test if the previous command button works Booking Form Test if the Check Availability command button works Booking Form Test if the Features available in rooms command button works Reports Form Test if the Daily Room Cleaning command button works Reports Form Test if the Rooms to Prepare for guests
20
N/A
21
N/A
22
N/A
23
N/A
24
N/A
25
N/A
The next Record to be shown The previous record to be shown Input box to be displayed requesting arrival date Input box to be displayed requesting Room Number Report for daily room cleaning (in print preview) to be shown Report for Rooms to Prepare for
26
N/A
27
N/A
28
N/A
29
N/A
30
N/A
Report for daily room cleaning in print preview shown Report for Rooms to Prepare for 34
Alex Cooper arriving command button works guests arriving (in print preview) to be shown Report for Rooms to clean for guests leaving (in print preview) to be shown Input box requesting the room number Report of the Invoice (in print preview) to be shown guests arriving in Print preview shown Report for Rooms to clean for guests leaving in Print preview shown Input box requested
31
Reports Form Test if the Rooms to clean for guests leaving command button works
N/A
32
33
Reports Form Test if the Invoice command button works Reports Form Test if the Invoice command button works
N/A
See Print out (Appendix A) for actual invoice (based on the current date only prints out for that room)
35
Alex Cooper
36
Alex Cooper
CONTENTS INTRODUCTION TO THE DATABASE DESCRIPTIONS OF THE FIELDS IN THE DATABASE ENTERING DATA INTO THE DATABASE (USING THE TABLE) MAKING A BOOKING: STEPS INVOLVED IN MAKING A BOOKING: 2. ENTERING CUSTOMER DETAILS 38 38 39 40 40 41 42 43 44 45 45 45
3.CREATING A BOOKING CHECK ROOM AVAILABILITY (EXAMPLE) VIEW REPORTS PRODUCE A CUSTOMER INVOICE EXITING THE DATABASE GLOSSARY OF TERMS
37
Alex Cooper
Introduction to the database This database is designed to be an easier to use booking system for the bridge hotel. Descriptions of the fields in the database Customer Field Name CustomerID FirstName LastName AddressLine1 AddressLine2 Town\City PostCode Telephone Data Type Auto Number Text Text Text Text Text Text Text Field Size \ Key Primary Key 30 30 30 30 30 (use input mask as well) (10) (use input mask as well) (13)
Booking Field Name BookingID ArrivalDate DepartDate CustomerID RoomNumber CreditCardNumber Cot Satellite TV Games Console Internet Access Breakfast All Meals Hours Required Data Type Auto Number Date\Time (Short date) Date\Time (Short date) Number Number Number Yes/No Yes/No Yes/No Yes/No Yes/No Yes/No Number Field Size\Key Primary Key N/A N/A Foreign key Foreign key Foreign key N/A N/A N/A N/A N/A N/A N/A
38
Alex Cooper
Conference Room Hours Required Function Room Staff Required Credit Card Field Name CreditCardNumber ExpiryDate Room Field Name RoomNumber RoomType
Number Number
N/A N/A
Entering Data into the Database (using the table) Once Microsoft Access has loaded, you are presented with the following screen.
Alex Cooper
Making a Booking: Note: Prior to making a Booking, the Customer Details and Card details should be entered first (unless the customer is a returning customer) Steps involved in making a booking: 1. Enter Customer Credit Card Details (not required if a returning customer) 2. Enter Customer Details 3. Create a booking
1. Entering Credit Card Details From the main menu, click View/ Add Credit Card Detials The following form will be displayed:
Use these commands buttons to cycle through the customer detail records. 40
Alex Cooper
Enter the card number in the card number box (this is in format that will only allow up to 20 digits). Enter the Expiry date and card holders name in the spaces provided. 2. Entering Customer Details
From the main menu, click View/ Add Customer Records The following form will be displayed:
Use these commands buttons to cycle through the customer detail records.
Enter the customer details in the boxes provided. Select the customers previously entered credit card number from the drop down menu.
41
Alex Cooper
Important note: Credit Card Details MUST be entered before you enter the customer details.
3.Creating a Booking From the main menu, click View/ Add Booking The following form will be displayed:
To check Room availability, click the Room availability Button. This brings up a separate window with the available rooms. If you are unsure of the features available in rooms, click on the features available in rooms command button. This also brings up a separate window, showing what features are available for that room number you entered. As with the Customer Details/ Credit Card Details form, click new booking command button to create a new booking. Click the rubbish bin command button to delete the current record. And use the navigation buttons to navigate through the booking records.
42
Alex Cooper
Check Room Availability (Example) From the main menu, click on Check Room Availability command button The following Screen will be displayed:
Enter the arrival date in the DD/MM/YY format After you have done that, the following screen will be displayed
Again, enter a checkout date in the DD/MM/YY format. After a few seconds, the rooms available during these dates are shown on the following page:
43
Alex Cooper
View Reports On this database, you can view the Cleaners reports where it shows the various cleaning tasks that the cleaners perform.
44
Alex Cooper
Produce a customer invoice From the same menu (reports) Click on the Invoice command button. This will bring up a dialogue box asking to input the room number. Enter the room number and the invoice is shown, (with the option to print by clicking on the the toolbar) Exiting the Database Click on the quit command button on the main menu. This saves and closes the database. on
Glossary of Terms Query A query is a question that you ask about the data in your table. Reports from the queries can be produced. Record A record is all of the information collected about a specific event, thing, product, or person, (such as a customer record). Report A report is used to show and print selected information from a table
45
Alex Cooper Conclusion & Future Developments Conclusion In conclusion, this database met the user requirements as it was much easier to use than a paper based system, customer records can be kept, and achieved (the validation needs to be adjusted according to the year). Also the possibility of making mistakes with the invoice has been eliminated as, as query has been produced, therefore calculations dont have to be done by hand. The likelihood of a double booking has been eliminated as the database shows only the vacant rooms on the given day (using the query). Future Developments There are several things that could be improved upon to make. This is due to running out of the given time. The improvements are: On the query for the rooms available, at present, there is no validation to show that the hotel is closed during the specified date (it is present on the booking form), so adding validation will show that the hotel is closed during those dates, rather than the user finding out that it is closed when entering it in the booking form. The system for booking conference/ function rooms to be improved, including creating a separate query to produce a invoice for the bookings of a conference/ function. In addition to the current validation, make it so that checkout date is greater than or equal to the arrival date. This eliminates errors in booking where the checkout is before the arrival date. Another possible component to add to the database is on the booking form, include a search button, so that the user can search for a specific booking, rather than using the navigational buttons which could be time consuming if there are a lot of bookings. An improvement for the invoice could be that a unique number (sequential) for each invoice is created.
46
Alex Cooper Appendix B Additional Designs (added after initial designs to improve usability) Booking Form Added Command button to run a query (Room Query) to show what features are in a room (such as Satellite, Cot etc) Room Query Query Description As above Criteria RoomNum [Enter Room Number] Fields & Tables to include Rooms RoomNum, RoomType, Cot Available Satellite Available, Internet Available, Price Per Night, Games Console Available Reports Produced No
32