Having identified the engineerings we wanted to utilize, and a agenda of work, we instantly started work on a paradigm system in Microsoft Access. This helped us to polish our thoughts. This page is an informal history of how we started.
Justin Barratt created the logical informations theoretical account, placing the entities, primary keys and properties, and their cardinality ( logical footings, but, in kernel, a physical database of tabular arraies, columns, data-types, restraints etc. ) He so built a signifier, which used a figure of SQL views/queries, to assist the group visualize how a flight booking page might work, and to show working elements within a existent database.
The insert below shows the flight hunt page from this paradigm system.
Having demonstrated how he built the paradigm and trial informations, Justin went on to construct the physical database in SQL Server and made this database available to others. Noman instantly started work on the database connectivity aspect to the groups chosen web-platform, ASP.
Knowing Noman to be a spot of a artworks ace, ( the Spacejet logo is his work ) he was asked to present the roughest ASP.net database connectivity illustration he could muster-with no data format or clip spent or fancy presentation whatsoever-and he delivered really rapidly. Noman pieced together the model for the staying pages and the all important site security. He demonstrated his findings, which allowed the squad to visualize the overall design of the Spacejet Booking System, and showed others how ASP.net is used.
Having ticked about of the all planning points listed under the agenda of work, we started work on the development.
The nucleus elements of the Spacejet system are standard on-line database application constituents ( a back-end, a middle-tier, and a front-end ) and do n’t necessitate debut as high degree objects. However, the site security component does merit a speedy reference. ASP.net ‘s in-built Membership Provider is a reclaimable constituent for pull offing web-application user histories and functions. It is separate from the System Database, and the histories it generates are referenced by the Spacejet database. The Security Database AccountId is inherited as an ‘external foreign key ‘ in Spacejet Customer tabular array.
In a existent system, we would hold, of class, exhausted clip placing every possible informations property that a existent system might necessitate but we thought this unneeded. We concentrated on placing the nucleus tabular arraies and compulsory informations columns merely. For case, the client tabular array in the below diagram does non include reference and station codification Fieldss – to include them would necessitate extra attempt for the web-developer, and take longer to show. The group concentrated on roughing-out the system before looking at the item.
True, the term client is a small vague for a flight booking database, but it is knowing. Our client tabular array shops both riders and booking agents. A booking agent is person who books flights ; for themselves or for others ( when a secretary books a flight for a co-worker or when a parent books a flight for a kid, for case ) . Passengers and Bookers are people, who portion common properties. Therefore, we decided to hive away these records in a individual tabular array. The meeting of booking agents and riders does do our theoretical account harder to comprehend-beyond 3NF — but we thought it of import to include this in our design.
Separate to the internally generated campaigner key, CustomerNo, the client tabular array has two surrogate keys, one of which is null-able. The CustomerEmail field is tantamount to a UserId for non-account holders ; it is used to place a returning invitee client. This value is compulsory. In the existent universe, hubbies and married womans frequently portion email references, so this identifier may non be a good pick of cardinal but, for the intents of our assignment, we thought it adequate. The CustomerAccountId is the external Idaho generated by the security database. This value is optional, to let guest users.
A engagement can be likened to an electronic basket to which flights are added. It is the heading which binds one or more engaged flights together. The foreign cardinal CustomerNo is an ‘optional ‘ value which ‘may refer to ‘ a client record, in this case the client is a ‘booker ‘ . When a invitee is adding flights to a basket, the CustomerNo is void ( unknown ) until the engagement is confirmed. The BookingTotal value is stored alternatively of derived, because a alteration in flight monetary value after booking would ensue in an falsely derived value.
A BookedFlight record links the engagement to one or more chosen flights, and paperss the figure of tickets/seats required for each. This tabular array is the physical execution of the many-to-many relationship between the Booking and Flight tabular arraies. This tables ‘ individuality is inherited from both parent tabular arraies to organize a composite primary key.
The Ticket tabular array is another physical representation of a many-to-many relationship, but this clip between the BookedFlight and the Customer tabular arraies. In this case, each ticket record is ‘owned by ‘ a rider. The referenced client is the ‘holder ‘ of a ticket. Although non shown, a campaigner cardinal column, named TicketNo, could easy be generated for a ticket.
“ The cardinality ‘owned by ‘ in the above paragraph should non be confused with the relational term ‘owned by ‘ which describes dependence between a parent and kid tabular array. ” JUSTIN BARRATT
The Airport tabular array is a list of Airports, both topographic points of going and reaching.
The Flight tabular array is a list of scheduled flights, which are available for booking. This table ‘refers to ‘ the Airport tabular array twice, one time for the topographic point of going and one time for the flight finish. The place handiness is managed merely, by manner of the counter, FlightSeats, which is reduced as flights are booked and increased when cancelled.
Specialization: The word ‘airport ‘ does non accurately reflect our infinite travel subject, but we chose this name for lucidity. However, by making so, we have ‘specialized ‘ the system for air travel merely. By renaming the tabular array ‘Airport ‘ to ‘Port ‘ and the tabular array ‘Flight ‘ to ‘Journey ‘ the system could be enhanced to let engagements for a figure of conveyance manners.
Our usage of the term ‘middle-tier ‘ refers to a aggregation of stored processs in our database. The usage of this term may non be wholly right. One of our grounds for utilizing stored processs was to ease the meeting of systems in the following assignment ; we thought our ready-made disassociation from the database would assist. The chief ground was to simplify the development of the front-end. Stored processs are non wholly disassociated from the backend ; of class, because these are constituents managed within the Relational Database Management System ( we must link to the system database to utilize them ) . But we thought this was the right pick for this assignment.
Though merely named, most of our stored processs encapsulate complex actions which we deemed excessively convoluted for the web-developer to plan.
Note: The system diagram does non demo a direct connexion between the web site and the database, but one exists.
When registering an history via the web-site, the user history information is saved to the security database. At this point we capture the inside informations entered, including the alone history Idaho generated by the security database, and salvage this information to the client tabular array. This provides a working transcript of the client inside informations in our system database from enrollment.
The member history to be referenced.
The name of the client.
The electronic mail reference of the client.
The generated client figure.
The spCustomerNumberGet stored process is used to recover a CustomerNo signifier the database. When logging on to the site, the user history inside informations are retrieved from a tabular array in the Security Database but the System Database CustomerNo is non yet known. spCustomerNumberGet retrieves the CustomerNo for a given CustomerAccountId. Not every user creates an history on the site, and this why there is separate designation for Customers and Accounts.
Parameters: @ AccountId
Tax return: @ CustomerNo
On adding the first flight to the basket, this process foremost generates a new Booking record and so adds the flight, by manner of an inserted BookedFlight record. In add-on to the inserted BookedFlight record, a figure of ticket records are inserted. The ticket Numberss ( the place Numberss 1 to 8 ) are derived from a Left-Outer-Join between the Ticket tabular array and a practical ‘FreeSeats ‘ tabular array. This reveals a list of un-booked place Numberss on the flight. The process loops through the free seats, and inserts a ticket record for each rider. Finally, after the needed figure of tickets has been added, the stock degree is reduced in the Flight tabular array.
The flight to be booked.
The figure of tickets required.
The engagement. New booking created if void.
The client. Guest assumed if void
The engagement. The generated basket figure.
When seeking for flights, this process allows flights to be removed from the basket. It besides deletes generated ticket records, by manner of a cascading delete, and restores the place handiness in the flight tabular array. The process besides deletes the engagement record, when the last flight is removed from the basket. By the way, our multi-process stored processs all use ‘Begin Transaction ‘ and ‘End Transaction ‘ statements to guarantee that the work is completed as a unit.
The flight to take.
At the point of corroborating a new engagement, a invitee user is asked to come in the name and electronic mail reference. Anterior to this point, the client is unknown and the basket is ownerless. If the client has booked flights antecedently, as a invitee or otherwise, or was included in person else ‘s rider list, the spBookingCustomerAllocate process efforts to happen this record. A client electronic mail reference hunt is performed and the client figure is returned if found. If a duplicate client is non found so a new client record is inserted and a freshly generated client figure is returned alternatively.
The engagement figure.
The client name.
The client electronic mail.
The found or freshly created client figure.
When adding a flight to the basket, ticket records are generated for the figure of riders specified. At this point, nevertheless, the tickets are passenger-less. This is because the rider inside informations are given after the tickets have been reserved. The TicketCustomer-Allocate process is called iteratively for each rider entered. It receives the parametric quantities @ BookingNo, @ CustomerName, and @ CustomerEmail, and does two things. First, it attempts to turn up a duplicate client record and inserts one if non found. Second, it allocates the ticket to the found or inserted Customer record.
The engagement figure.
The client name.
The client electronic mail.
The figure of the place allocated.
We found the Integrated Development Environment ( IDE ) in Visual Web Developer 2010 surprisingly easy to utilize, though some group members found the constructs of event-driven scheduling and OOP hard to hold on. The interface controls, such as dropdown lists and informations grids, etc, are easy placed ( though non so easy positioned as win-form controls ) and can easy be connected to a database via ADO.net connexion objects. We needed to compose a figure of VB.net ‘events ‘ to action button chinks and grid-row selects etc. As mentioned on the Technologies page, our chosen ‘code-behind ‘ ( the term used for the linguistic communication option in ASP.net ) is VB.net.
The Booking Wizard
Measure 1: Choice Battles
Measure 2: Attention deficit disorder Passengers
Measure 3: Payment Detailss
Measure 4: Confirmation
The Registration Page
The Login Page
The Booking Information Page
The Admin Page
The Home Page is the first page to be displayed when a user navigates to the site. At the top of this page, a bill of fare saloon shows links to the Booking Information and Registration pages. There is besides a nexus to the Login page, via a button. The most obvious characteristic of this page is the Flight Search installation. The user can seek the flights on utilizing the undermentioned standards.
Tax return Date
No. Of Passengers
When a user initiates a hunt from the place page, they are redirected to the Booking Wizard. The Booking Wizard is a four measure procedure, which splits the booking experience into smaller parts, doing it convenient for them to book tickets. This ace is based on ASP ‘s View Control which is a portion of.net Framework. The Booking Wizard besides has a advancement saloon at the top which informs the user about the accomplished stairss ; the current measure and the staying stairss. These are highlighted with different colorss.
Measure 1: Choice Battles
Measure 2: Attention deficit disorder Passengers
Measure 3: Payment Detailss
Measure 4: Confirmation
This page ( charming page ) is where the user is presented with the consequences of their initial flight question. The user can polish their hunt from this page. For lucidity, and convenience, the flight hunt consequences are divided into outbound and inbound grids. The grids are populated with SQL, which is dynamically constructed from the hunt standard. The grids display the undermentioned flight inside informations.
Departure Date and Time
Arrival Date and Time
Number of Seats Available
Note: By default, the user is presented with flexible +/- 1 twenty-four hours flights.
Grid Rows are selected separately, and this enables the user to choose a flight from each grid and so add the selected flights to the basket by snaping on the “ Add Flight ( s ) to Basket ” button. The “ Add Flight ( s ) to Basket ” button merely gets enabled when the user selects a flight from the grid. The basket holds the information about the flights selected by the user demoing the figure of flights and the entire menu. The user can take any flight from the basket by choosing the flight and snaping “ Remove selected flight from Basket ” .
After adding the flights to the basket, the user returns to this measure to add the inside informations of the riders going on the flight in the Passenger Grid. It may be the instance that the individual who is booking the flight might non be going but the system requires hive awaying the information of that user. The user is asked to make full out the inside informations in the boxes labelled “ Who is booking? ” and “ Send verification electronic mail to? ” If the user is already logged in, these Fieldss are automatically populated from the session variables. There is besides a checkbox with label “ Are you going on this flight ” . By choosing this cheque the Customer Name and Email is added to the rider inside informations grid. This saves the user from retyping the Name and Email. Once the rider inside informations are validated the user continues to the payment inside informations.
At this measure, the user is presented with the payment options to corroborate their engagement and acquire the tickets. The current system accepts merely recognition card as the payment method. Presently there is no hallmark procedure for recognition card in this system because that is beyond the range of this undertaking. After come ining the payment inside informations the user confirms the engagement by snaping on the “ Confirmation ” button.
Confirmation is the last measure of the booking ace ; this page confirms that the flight has been booked. An email sent to the clients reference besides confirms the engagement. The alone engagement figure is automatically generated by the system.
This page allows a user to register their inside informations to the site. The user is asked to supply their name ( preferred user name ) , watchword, electronic mail reference, security inquiry and reply. This enrollment signifier is based on ASP.net ‘s built in create user ace control which is linked to the asp.net rank database.
This page allows a user to logon to the site. It shows textboxes for a username and watchword and a button to subject these inside informations. The login signifier is besides based on Asp.net built in login control, which validates the username and watchword against the asp.net rank database. A successful logon redirects the user to the place page. An attested decision maker is redirected to the Admin page.
This page has a grid which retrieves the Booking information associating to a specific booking figure from the database. If a client wants to acquire information related to engagement, he has to come in the engagement figure and click “ Retrieve Information ” button which fills the grid with all the flights related to that booking figure. At this phase the system does non let the user to redact the engagement inside informations e.g. altering the rider inside informations.
If the logged in user is an decision maker, he will be redirected to this page. All other users will be redirected to the login page. This page serves as an Admin panel where an decision maker can hold entree to different care options. At the minute we merely have Flight Maintenance subdivision available. The Flight Maintenance ‘Filter By ‘ dropdown shows a individual option, presently Flight No. ) , a textbox to come in the value i.e. Flight No. and a “ Search ” button. The decision maker will acquire the consequences of the question in grid position control. The decision maker can update or cancel any flight from this page.
One of the groups ‘ cardinal aims was to guarantee that every squad member met or exceeded the larning results required by this assignment. The group set a compulsory demand that every member will download and put in SQL Server 2008 Express and Visual Web Developer Express ( ASP.net ) and larn how to utilize them, in order to lend to the work. Once done, Justin demonstrated SQL Server and Noman demonstrated Visual Web Developer. Both Justin and Noman provided preparation and set undertakings for the less experient members. Noman introduced the group to Google Wave and Team Viewer, the on-line coaction tools, so we had every agency of communicating. It was accepted that some members had more to larn than others, but we agreed that we would each all like to give and have an equal part in the equal appraisal — a squad attempt. However, despite all this chance, unhappily, some members contributed nil at all.
Some of us have learnt a great trade about Online Database Applications scheduling.
You can shop the Spacejet web site, hunt for flights, book flights as a invitee or as a registered user. To utilize the Spacejet Booking system you will necessitate a computing machine with an internet connexion and a browser such as Internet Explorer or Google Chrome.
You can register by traveling to the enrollment page, which is accessible via the registry button on the bill of fare saloon.
On the enrollment page you have to make full out a little and easy signifier with the following inside informations.
On successful completion of the enrollment procedure the undermentioned message will corroborate that your history has been successfully created.
Click “ Continue ” to be redirected to the place page. You are ready to seek for flights.
As a registered user, you will hold a username and watchword. Enter the login page by snaping the “ login ” button on the bill of fare saloon, at the top of the page.
The login page shows two entry boxes ; one for your user Idaho and one for you password. Enter these inside informations in the boxes provided and snap the Login button.
If the login proof is non successful, you will non be able to go on.
After successful logon, you will be redirected to the place page where you will see a welcome message, demoing your name, at the top of the page. The login button has now changed to logout-as you are already logged in, of class. Do n’t bury to logout before go forthing.
You can get down you flight hunt from the speedy hunt installation which is available on the home page.
To seek for a flight you have to:
Choose where you are Flying From, from the dropdown list.
Choose where you are Flying To, from the dropdown list.
Choose the Depart day of the month – chink the box to see the data-picker.
Optionally, select the Return day of the month – chink for data-picker.
Choose the figure of Passengers going.
Click the Search Flights Button
After seeking for flights you will be redirected to the flight choice page where you will see the consequences of your question in a formatted grid/s. There are two grids on the page ; one for outbound flights and one for inward flights-as indicated by the labels above them. To add flights to your basket you must:
Choose the needed flight ( s ) from the grid – chink ‘select ‘ .
Click the “ Add Flight ( s ) to Basket ” button
After adding one or more flights to your basket, you will see an updated label demoing the figure of flights in the basket and the entire cost. To take the flights from the basket you must:
Choose the flight you want to take from the basket.
Click the “ Remove Selected Flight from Basket ” button.
If you are happy with the flights in your basket, click the ‘Add Passengers ‘ button.
The Add Passengers page is where you enter the inside informations of the passenger/s going on the flight/s you have chosen. The first two Fieldss on this page are about the individual booking-you! Because you have logged in, the boxes labelled “ Who is booking the flight? ” and “ Send verification E-mail to: ” are automatically populated with your inside informations. Merely a invitee user is required to come in information in these Fieldss.
If you are going on the flight/s please click the box labelled “ Are you going on this flight? ” This will copy your inside informations to the rider list automatically.
This page is where you enter payment inside informations and do your payment. You will see the undermentioned Fieldss on the payment inside informations page. Complete all the Fieldss and chink on the “ Confirmation ” button.
If your payment is successful you will have an on-screen verification message informing you that your engagement has been completed. You will be provided with a alone Booking Number which holds the information about your engagement.
You will besides have a verification electronic mail with the engagement figure.
A advancement saloon is displayed on the top of page during the engagement procedure which will advise you about the accomplished stairss, the current measure you are in and the stairss which needs to be completed.
You can besides see the inside informations of your booking on our web site. To make this you have to see the engagement information page from the nexus available in the top bill of fare saloon.
The booking information page contains a field where you have to come in your booking figure. After come ining the figure chink “ Retrieve Information ” button.
If the Booking figure is right so you will see the inside informations of your engagement on the same page.
We hope you have found the Spacejet Booking system simple to utilize and self-explanatory. However if you have any trouble in utilizing the site, or come across any issues, delight reach us at: spacejetteam @ gmail.com. Do n’t bury to include your name ( and booking inside informations if you have them ) with a clear description of the job. We will make our best to repair the job every bit shortly as possible.
The Spacejet Team.