Design Document of an Online Travel Agency



 

Introduction

This portion of the Design Documentation is to denote the implimentation of the requirements documenation such that all of the functional and non-functional requirements are met in the final System.
 

A - Graphical User Interface Design

1.1 Main Interface:
The main interface will be a page that will contain a tabled layout of the various services which may be provided. Note: Images will be used only as complements to the text items.

1.2  Common Attributes

All pages will share these common attributes:
1.2.1 Table Columns
A table of three columns.
The rightmost and leftmost columns will each be 25% of the window width. The center column will be 50% of the window width.
1.2.2 Table Borders
The table will have no borders.
1.2.3 Table Style
The table background will be white. There are some exceptions to this rule:
1.2.3.1 Advertising Cells
The advertising cells will have a light grey background.
1.2.3.2 Promotion Cells
The special promotions cells will have a dark grey background
1.2.3.3 Right Column
The right column will contain navigational buttons to the Home page, and Logout page with the following exceptions
1.2.3.4 Home Page
The home page will have an integrated login/password cell where the user can enter his login information right in the cell then press login to gain access to the system
1.2.3.5 Logout Page
The logout page will have one link to the home page only
1.2.4 Center Column
The center column will always contain the body of information for the page.
1.3 Main (index) Page Services
1.3.1 Defaults
See defaults for all pages above and note exceptions
1.3.2 New Users
There will be a join button for new users
1.3.3 Guest Users
There will be a guest button in the last cell of the right column. This is for those users who would like to see what kind of services we provide.
1.3.4 Company Synopsis
There will be a brief description of the company  in the center column.
1.4 Login Page Services
1.4.1 Defaults
See defaults for all pages above and note exceptions
1.4.2 Services
In the center column will be a listing of available services with an associated image icon.
1.4.2.1 Travel Planning Wizzard
This will take all the users through the necessary steps of planning a trip from the initial to the final stages of the trip. Most users will select this option unless they have prearranged plans.
1.4.2.2 Flight/Rail Reservations only
(IE: a friend will pick them up at an aeroport and drive them to their house so all they will need is to arrange for a flight reservation)
1.4.2.3 Taxi / Transportation Reservations only

1.4.2.4 Hotel Reservations only

1.4.2.5 Directions to/from aeroport

1.4.3 Based on the user selection of the above options various
server parsed (PHP3) web pages will appear.
1.5 Logout Page Services
1.5.1 Tell the user that he/she has been sucessfully logged out
1.5.2 Allow a display (in the center column) for a sponsor's add.
1.5.3 Allow access to the home page for a re-login.
2.0 Main Functions 3.0 Alternative Functions
3.1 Email Notification
The customer's email address will be used in such a way that a confirmation message with the standard web page format, will allow the notification of pending or commited transactions. The user will have the option of clicking on a button in the center column to go to the webpage to confirm flight time and / or any forseeable delays.
3.2 Special Offers
The user will be emailed special offers and incentives based on their account history. The format of the email will be in the standard web page format, and will include a button in the center column for user's to click on and retrieve more information on the special offer.
3.3 Contact Page
The user will have a link at the bottom of each webpage and email address that will allow for the navigation to the Contact Page. This page will be formatted similarly to the standard web page, except that the user will be supplied with a list of email addresses with which to contact the company and its relevant services. (all hyper linked with mailto: tags)

B - Architectural Design

4.0 Architectural Design Diagram
This is based on a simple concept, a many to many relationship. Since the bulk of the business is going to be done through the internet. It is quite visible that there would have to be an architechure similar to the one in this diagram.
4.1 Architectural Design Diagram Description
You can see here that the design is a simple one. The server is located behind a network connection to the Internet. The server is running a web daemon able of processing the user's request for documents (the system) and set everything (their choises) for the system. There are others connected to a local area network that can administer and update the system when necessary. This is because the system is not allowed to be logged into via the Internet. The only accessible service that the users will see from the Internet is the web daemon.

C - Object Oriented Design

5.1 Main Module
This modules handles the user logging in and off the system and also calls the user module form for editing user information and handling the user to the travel module should they desire it.
  • knows:
    • the username
    • the password
  • calls:
  • members:
    • get username
    • show username
    • get password
    5.2 User Module
    This module handles the user information stored in the system.
  • knows:
    • real name
    • login name (or username)
    • password
    • address
    • phone number
    • email address
    • billing information
  • calls:
  • members:
    • edit user
    • save user
    • delete user
    5.3 Security Module
    This module handles the logon/logoff and any other security related administrative task. Including configuring the web page url for each unique user such that it checks on 'cookies'.
  • knows:
    • login name
    • login role
    • login role exceptions
    • login tables
    • database objects
  • calls:
    • role::update role
    • role::update exceptions
    • role::revoke role
    • role::revoke exceptions
    • role::create role
    • role::create exceptions
  • uses:
  • members:
    • verify user
    • verify (same as above)
    • logon
    • logoff
    • make cookie
    • get cookie
    5.4 Role Module
    Handles the roles which are eventually assigned to each user. The roles consist of a number of tables/webpage each user is allowed to alter data on. Along with the role's value. Hence if a role is set to guest, then the user is allowed to browse the web pages and tables that are marked off for that role.
  • knows:
    • role names
    • table names
    • security levels
    • pages names
  • uses:
  • calls:
  • members:
    • update role
    • create role
    • delete role
    • add security level
    • delete security level
    • add page name
    • delete page name
    5.5 Table Module
    This module keeps track of the tables in the database.
  • knows:
    • table names
  • uses:
  • calls:
  • members:
    • update table
    • add table
    • remove table
    5.6 Travel Module
    This module keeps track of the user's selection for the travel information. For example, when the user decides that he wants to initiate a new car travel reservation.
     
  • knows:
    • user name
  • uses:
  • calls:
    • rail/airline::start
    • auto rental::start
    • direction finder::start
    • hotel::start
    • security::verify
  • members:
  • 5.7 Rail/Airline Module
    Handles the airline/rail reservations initiated by the user. It starts by associating the login name with an origin and destination. Both vars are retrieved by selecting a site.
  • knows:
    • login name
    • Origin
    • Destination
    • airlines
    • flights
  • uses:
    • Site Selection Module
    • Flight Module
  • calls:
    • site selection::get(origin)
    • site selection::get(destination)
    • flight::get flights (origin, destination)
  • members:
    • start
    5.8 Auto Rental Module
    Handles the auto rental reservations initiated by the user. It starts by associating a site with the available information for the companies. Requesting information for unavailable sites via its calls.
  • knows:
    • login name
    • available companies
    • available sites
  • uses:
    • Site Selection Module
    • Taxi Module
  • calls:
    • site selection::get(site)
    • taxi::get(companies)
  • members:
    • start
    5.9 Direction Finder Module
    Handles the distribution of directions for the user. For example, if the user needs to get from his home to the local airport.
  • knows:
    • login name
    • place of origin
    • airport
    • market city's maps
  • uses:
    • Site Selection
  • calls:
    • site selection::get(place of origin)
  • members:
    • start
    • display map
    5.10 Hotel Module
    Handles hotel reservations for the city's location. In case the user has to reserve a hotel room.
  • knows:
    • login name
    • place of destination
    • area hotels
  • uses:
    • Site Selection
  • calls:
    • site selection::get(place of destination)
  • members:
    • start
    5.11 Site Selection
    Handles the selection of sites. This is never called from an external object. It is an internal class used for selecting sites for the various modules previously listed.
  • knows:
    • login name
    • list of market cities and towns
  • uses:
  • calls:
  • members
    • get
    • add
    • remove
    • update
    • list
    5.12 Flight Module
    Handles the selection of flights. This is called by some modules for displaying of flight information.
  • knows:
    • airline co.
    • flight number
    • flight time
    • flight duration
    • flight date
    • number of seats
  • uses:
  • calls:
  • members:
    • get
    • get flights
    • update
    • add
    • remove
    • list
    5.13 Taxi Module
    Handles the selection of flights. This is called by some modules for displaying of flight information.
  • knows:
    • auto svce co.
    • auto rental time
    • auto rental duration
    • auto rental start date
    • auto rental end date
    • type of car
    • size of car
  • uses:
  • calls:
  • members:
    • get
    • get autos
    • update
    • add
    • remove
    • list

    D - Glossary

    1. Operator: An employee of the Company, given rights to operate on the System.
    2. Customer: A client or potential client of the Company.
    3. System: The collection of computers, or server(s) that will collect, operate on, and manage the data automatically.
    4. Oracle: Trademarked name of the Relation Database Management System company, and it's affliates.
    5. DBA: Database Administrator.
    6. real tables: tables that contain Company sensitive information of previous clients, and current clients.
    7. development environment: The environment where the System can be tested and new features tested with minimal to no impact on the Operators, or Customers.
    8. production environment: The environment where the System can be utilised by the Customers and Operators to preform the daily routine transactions of the system.
    9. downtime: Times when the Operator or the Client has no access to the system.
    10. back end: The portion of the System that is not apparently visible to the Operator or the Customer.