Online booking system for a ﬁctitious airline
You have been commissioned to design aWeb/Internet application that implements an online booking system for a new airline that operates out of Dairy Flat Airport.
The airline provides a highly specialized point-to-point service with Dairy Flat as its hub. It operates a number of light jet planes. The pride of the ﬂeet is a SyberJet SJ30i which can carry 6 passengers in luxury. Other aircraft are: two Cirrus SF50 jets that take 4 passengers each and two HondaJet Elite planes that can take 5 passengers each.
The airline operates the following ﬁve routes all out of Dairy Flat:
• A weekly “prestige” service to Sydney using the SyberJet aircraft. The outbound ﬂight departs Dairy Flat on Friday around mid-afternoon with the return inbound ﬂight departing Sydney on Sunday mid-afternoon (their time).
• A twice daily shuttle service to Rotorua using one of the Cirrus jets. These operate every weekday Monday–Friday. The ﬁrst ﬂight departs Dairy Flat early morning with the return ﬂight departing from Rotorua at noon. After turnaround, the next ﬂight departs Dairy Flat late afternoon, with the return ﬂight departing Rotorua in the evening.
• A three times weekly service to Claris airport in Great Barrier Island using the other Cirrus. The outbound ﬂight departs Dairy Flat in the morning every Monday, Wednesday, and Friday. The return ﬂight departs Great Barrier Island in the morning every Tuesday, Friday, and Saturday.
• A twice weekly service to Tuuta Airport in the Chatham Islands using one of the HondaJets. The outbound ﬂights depart Dairy Flat on Tuesday and Friday, with the return ﬂights departing Tuuta on Wednesday and Saturday.
• A weekly service to Lake Tekapo in the South Island using the other HondaJet. Departs Dairy Flat on Monday with the return ﬂight departing Tekapo on Friday.
You are free to decide on the prices of the various legs of these ﬂights. You can also decide on how to allocate ﬂight numbers.
Also you will need to decide on ﬂight times between the end points. Just decide on any reasonable values. Note that westbound ﬂights usually take longer than eastbound ﬂights(at least in this part of the world).
Your application should have the following features and capabilities
• A suitable database for storing the relevant information. A startup SQL source is given that has a table each for aircraft, destinations, and routes. You will need to decide what additional tables are needed and how they are related. In particular you will need a table to list the actual scheduled ﬂights according to their departure dates, together with a means of populating this table.
• A landing page, index.html, that functions as the entry point for your application
• The ability for a user to conveniently browse the database for any desired ﬂights.
• A service to allow a user to select a scheduled ﬂight and make a booking. The user should be provided with a unique booking reference. A booking should not allowed on scheduled ﬂights that are full up. On making a booking, the user should be presented with an invoice page summarizing the details of the ﬂight, ie price departure date and time, arrival time, etc.
• The capability for a user to cancel a booking.
• Content presented to the user in an attractively formatted manner.
Note that Sydney and the Chathams Islands are on diﬀerent timezones from mainland New Zealand. You should correctly allow for any relevant time zone diﬀerences.
It is not required that your application strictly complies with MVC, but you should apply good coding practice and separation of concerns.
You must deploy your application on the course virtual machine.
Add additional features as you see ﬁt.
This section is left open ended as there are many possibilities as to additional features and functionality that can be added to your application. Rather than just itemize a list of tasks to check oﬀ, it is left to you to decide how to expand your application beyond the core requirements. You are encouraged to think about the lecture material and consider if and/or how this could be incorporated into your assignment. Suggestions will be given as we progress.
Implementing the core requirements will earn a passing mark. Implementing additional features will earn extra marks.