1 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Contents
Problem Description
System Capabilities
Business Benefits
Workflow Activity Diagrams
Registration/Log-in/Log-out Subsystem
Search Subsystem
Checkout/Payment Subsystem
Attraction Subsystem
Use Cases
Use Case Diagram
Use Case List
Use Case Descriptions
Domain Class Diagram
Technology tools for software development
Project Plan (Part A)
Design Class Diagram
Class responsibility collaboration
System Sequence Diagram
Registration/Log-in/Log-out
Search/Selection/Checkout
State Machine Diagram
Travel
Attractions
Payment
2 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Online Travel Booking System
Problem Description
Traveling has always been a tough endeavor to plan for the average consumer; budget constraints,
timing issues, lack of language proficiency, and unfamiliarity with the area of travel make the process
difficult without the aid of a professional. However, during the exponential growth of the internet and
mobile technologies, a marketplace catering to consumers cutting out the physical middlemen has
blossomed. This provides an opportunity to bring the consumer an easy way to use their devices to
book their flight, their hotel, their transportation, and even plan what local attractions they will visit.
This system will save the consumers a considerable amount of time and money, this will be done by
linking the consumer to the global databases maintained by third parties on behalf of hotels and
transportation companies, as well as handling their payments through our service, bringing them the
power to plan their own customized vacation package from the comfort of their own homes.
System Capabilities
The system should be capable of:
Providing user with account user/pass
Connecting the user to the flight/hotel/transportation global distribution systems through our
client
Handling input queries of desired dates and location of travel, and outputting corresponding
flights/hotels/transportation
Handling hotel/transport payment from customer securely
Sending payment minus fee to hotel/transportation system
Local attraction database/Google places API
Business Benefits
We believe that this new system will provide the following benefits to the consumer, and the
hotel/transportation providers:
Saving money on staffing, marketing, and booking systems maintenance for
hotel/transportation chains
Allowing small businesses to be seen and accessed by a larger customer base
Higher competition leading to lower prices for the consumer
Consumer uses a single system for all their booking, instead of one for each reservation
Takes full advantage of current GDS technology used by travel agents to eliminate need for in
house inventory acquisition and database maintenance
Opportunity for advertisers to capitalize on customer visits to trip planning site
3 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Workflow Activity Diagrams
Registration/Log-in/Log-out Subsystem
User actions
1. If user has account, user logs in
2. If user has no account, user enters new
account info into creation form
3. If user wishes to log out logs out
System Actions
1. If user has no account system opens
creation form
2. If user had no account, account created
with input info
3. Logs user in
4 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Search Subsystem
User actions
1. User enters location and travel destination
2. User applies filters to search(budget,
distance, type of hotel/trans, etc)
3. User selects flight/hotel/transportation
1.
2.
3.
4.
System Actions
System opens main page
System receives input,
System queries the GDS with provided
filters
System outputs information to user client
5 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Checkout/Payment Subsystem
User actions
1. User checks out
1.
2.
3.
4.
5.
System Actions
System receives and processes payment
If invalid payment, system waits for valid
If payment is valid, system simultaneously
checks if user booked a flight, hotel, and or
transportation
If user booked a flight, payment is sent to
flight company
If user booked a hotel and or
transportation, payment is sent minus fee
6 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Attraction Subsystem
User actions
If user wishes to browse attraction section
they select the option
User browses attraction section(external
API)
User logs out
System Actions
Closes user session
7 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
8 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Use Cases
Use Case Diagram
Use Case List
Actors
Customer
Actions
Log In
Register an account
Input location/travel destination
Filter searching result
Select flight/hotel/transportation
Check out
Browse attraction section
Log out
9 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Use Case Descriptions
Log in
Use case Name
Use case scenario
Log In
Customer logs in the system
Brief Description
Customer provides Username and password to log in
system.
Actor
Related use case
Pre-conditions
Flow of activities
Exceptions
Conditions
Customer
Register an account
Input location/travel destination
Filter searching result
Select flight/hotel/transportation
Check out
View orders
Browse attraction section
Customer must have an account in System.
Actor
If user has account,
user logs in
If user has no
account, user
enters new
account info into
creation form
System
If user has no
account system
opens creation
form
Logs user in
If customer has no account system opens creation
form, registers account after input.
If customer inputs invalid username/password, they
must be entered again.
10 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Register
Use case Name
Use case scenario
Brief Description
Actor
Related use case
Pre-conditions
Flow of activities
Exceptions
Conditions
Register an account
Customer creates a new account in system
Customer input their personal information to fill in the
form.
A new account will be created in system.
Customer
Log In
Customer does not have an account in system.
Actor
If user has no
account, user
enters new
account info into
creation form
System
If user had no
account, account
created with input
info
If customer inputs invalid information, no account will
be created
Until he/she input successfully.
11 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Input location/travel destination
Use case Name
Use case scenario
Input location/travel destination
Customer input locations he/she wants to travel.
Brief Description
Customer enters the location/destination in the search
bar and presses Submit button.
Actor
Related use case
Pre-conditions
Customer
Log In
Customer must log in the system.
Actor
User enters
location and travel
destination
Flow of activities
System
System receives
input,
System outputs
information to
user client
12 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Exceptions
Conditions
If the destination does not exist in the database, the
system will report that no information is found.
13 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Filter searching result
Use case Name
Use case scenario
Brief Description
Actor
Related use case
Pre-conditions
Flow of activities
Exceptions
Conditions
Filter searching result
Customer filters the searching results according to the
demand.
Customer use the filter to narrow down displayed
options (budget, distance, type of hotel/trans, etc.).
System displays corresponding result according to
users selection.
Customer
Log In
Input location/travel destination
Customer must enters the location/destination in the
search bar first
Actor
User applies filters
to search (budget,
distance, type of
hotel/trans, etc.)
System
System receives
input
System queries the
GDS with provided
filters
System outputs
information to
user client
None
14 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Select flight/hotel/transportation
Use case Name
Use case scenario
Brief Description
Actor
Related use case
Pre-conditions
Flow of activities
Exceptions
Conditions
Select flight/hotel/transportation
User select the flight/hotel/transportation they want to
book
Customer choose the service they want to book
according to the final result that is displayed by system.
System accepts the request and requires payment.
Customer
Log In
Input location/travel destination
Filter searching result
User has already finished the searching process.
Actor
User selects
flight/hotel/transportatio
n
System
System
requires the
payment
If customers change their mind , they can cancel the
selection and choose new options.
15 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
16 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Check out
Use case Name
Use case scenario
Brief Description
Actor
Related use case
Pre-conditions
Check out
Customer makes a payment for the booking order
Customer presses Checkout button to make a payment.
System receives the payment, creates the order. System sends
the fee to the corresponding company.
Customer
Log In
Input location/travel destination
Filter searching result
Select flight/hotel/transportation
Customer has already select the service and confirm the
selection.
Actor
If user has account,
user logs in
If user has no account,
user enters new
account info into
creation form
Flow of activities
Exceptions
Conditions
System
System receives and
processes payment
If payment is not valid
system waits until
valid payment is
made
If payment is valid,
system
simultaneously
checks if user booked
a flight, hotel, and or
transportation
If user booked a
flight, payment is
sent to flight
company
If user booked a hotel
and or
transportation,
payment is sent
minus fee
If payment is not valid system waits until valid payment is made.
If customer does not make a payment within 1 hour, the
booking order will be canceled.
17 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Browse attraction section
Use case Name
Use case scenario
Brief Description
Actor
Related use case
Pre-conditions
Flow of activities
Exceptions
Conditions
Browse attraction section
Customer browse the attraction section they select.
Customer presses the Attractions button to
browse the attraction section they select. System
queries the database and display the result.
(Use API if needed)
Customer
Log In
Customer must log in the system.
Actor
If user wishes to
browse attraction
section they select the
option
User browses
attraction
section(external API
or in house database)
System
Closes user
session
None
18 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Check out
Use case Name
Use case scenario
Log out
Customer log out system
Brief Description
Customer presses Log Out button to log out system
Actor
Related use case
Pre-conditions
Customer
Log In
Customer already logged in the system
Actor
If user wishes to log
out logs out
System
Closes user
session
Flow of activities
Exceptions
Conditions
None
19 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Domain Class Diagram
Technology tools for software development
Technology Tools
Microsoft office suite
Visual Paradigm
HTML, JS, ASP.NET, CSS, Relevant IDEs
SQL Server, Relevant IDEs
Purpose of Tool
Project proposal, project planning, document
prep
Design and create various UML diagrams
Website/client design and implementation
Developing and maintaining in house databases
20 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Project Plan (Part A)
Design Class Diagram
21 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Class responsibility collaboration
User
Add user
Delete user
Update user info
Get user info
CreateCart
AddNewSearch
AddNewTravel
SearchAttraction
TravelOrder
Cart
userID
name
lastName
country
city
22 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
address
phone
email
SearchAttraction
Match searching location
Print the selected attraction info
description
location
TravelOrder
Get travel order info
Cancel the travel
Check whether the travel is confirmed
User
User
Payment
Flight
Hotel
Transportation
travelID
userID
transportation
fightID
hotelID
attractionName
Payment
Select payment options
Receive a payment
travelID
amount
Credit
Receive a credit payment
TravelOrder
TravelOrder
Payment
cardNumber
expireDate
CVC
23 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Deposit
Receive a deposit payment
TravelOrder
Payment
Name
bankID
Points
Receive a point payment
TravelOrder
Payment
quantity
Flight
Get flight information
CartItem
Flight details
flightID
from
destination
class
price
airline
departureDate
returnDate
Hotel
Get hotel information
CartItem
Hotel Details
hotelID
hotelName
country
city
address
price
classification
Transportation
Get transportation information
CartItem
Transportation details
24 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Plate
capacity
SystemUI
Log in user
Cart
getcartItemInfo
AddCartItem
DeleteFromcart
Checkout
CartID
Quantity
TotalAmpount
UserID
CartItemNumber
User
User
Cart Items
Cart
CartItemNumber
FlightID
HotelID
PlateID
Flight Details
Travel Order
Flight
Status
Price
25 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Class
Hotel Details
Travel Order
Hotel
Price
Classification
Transportation Details
Travel Order
transportation
Price
Type of vehicle
26 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
System Sequence Diagram
Registration/Log-in/Log-out
27 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Search/Selection/Checkout
State Machine Diagram
28 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Travel Order
Flight
29 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
Payment
Part C
30 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
1. High level Architecture design
2. UI
A. User settings
B. Travel Order details
31 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
C. Travel orders general
32 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
D. Flight Details (Selection)
33 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
34 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
E. Search Attractions
F. Checkout
35 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
3. ERD
4. Component and Deployment
5. Stub Code
6.
7.
8.
9.
10.
11.
12.
13.
public class User
{
private int userID;
private string name;
private string lastName;
private string country;
private string city;
private string address;
36 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
private i nt phone;
private s tring email;
public void UpdateUserInformation()
{
// TODO - implement Customer.UpdateContactInformation
throw new System.InvalidOperationException( );
}
public void DeleteUser()
{
// TODO - implement Customer.DeleteUse
throw new System.InvalidOperationException( );
}
public void AddUser()
{
// TODO - implement Customer.AddUser
throw new System.InvalidOperationException( );
}
public string GetUserInformation()
{
string userInfromation = ""; // gather information
return userInfromation;
}
public void CreateCart()
{
// TODO - implement Customer.CreateCart
throw new System.InvalidOperationException( );
}
public void AddNewSearching()
{
// TODO - implement Customer.AddNewSearching
throw new System.InvalidOperationException( );
}
public void AddNewTravel()
{
// TODO - implement Customer.AddNewTravel
throw new System.InvalidOperationException( );
}
}
37 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
public class SearchAttraction
{
private string description;
private string location;
public void PrintSelectedAttraction()
{
// TODO - implement Customer.PrintSelectedAttraction
throw new System.InvalidOperationException( );
}
public void MatchSearchingLocation()
{
// TODO - implement Customer.MatchSearchingLocation
throw new System.InvalidOperationException( );
}
}
public class Cart
{
private string cartID;
private int quantity;
private double totalAmount;
private int userID;
private int cartItemNumber;
public string GetCartItemInfo()
{
string cartInfo = ""; // gather information
return cartInfo;
}
public void AddToCart()
{
// TODO - implement Customer.AddToCart
throw new System.InvalidOperationException( );
}
public void DeleteFromCart()
{
// TODO - implement Customer.DeleteFromCart
throw new System.InvalidOperationException( );
}
}
38 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
public class CartItems
{
private int cartItemNumber;
private string flightID;
private string hotelID;
private string plateID;
}
public class TravelOrder
{
private int travelID;
private int userID;
private string transportation;
private int flightID;
private int hotelID;
private string attractionName;
public string GetTravelInformation()
{
string travelInformation = ""; // gather information
return travelInformation;
}
public void CancelTravelOrder()
{
// TODO - implement Customer.CancelTravelOrder
throw new System.InvalidOperationException( );
}
public void IsConfirmed()
{
// TODO - implement Customer.IsConfirmed
throw new System.InvalidOperationException( );
}
}
public class Payment
{
private int travelID;
private double amount;
public void SelectPaymentOption()
{
// TODO - implement Customer.SelectPaymentOption
throw new System.InvalidOperationException( );
39 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
public void ReceivePayment()
{
// TODO - implement Customer.ReceivePayment
throw new System.InvalidOperationException( );
}
}
public class Points : Payment
{
private double quantity;
}
public class Deposit : Payment
{
private string name;
private int bankID;
}
public class Credit:Payment
{
private int cardNumber;
private string expireDate;
private string cvc;
}
public class Flight
{
private int flightID;
private string from;
private string destination;
private string airline;
private string departureDate;
private string returnDate;
private string seat;
public string GetFlightinfo()
{
string flightInfo = ""; // gather information
return flightInfo;
}
}
public class FlightDetails
{
40 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
private s tring status;
private d
ouble price;
private s tring flightClass;
}
public class Hotel
{
private int hotelID;
private string hotelName;
private string country;
private string city;
private string address;
public string GetHotelInfo()
{
string hotelInfo = ""; / / gather information
return hotelInfo;
}
}
public class HoteDetails
{
private double price;
private string classification;
}
public class Transportation
{
private int capacity;
private string plateID;
public string GetTransInfo()
{
string transInfo = ""; // gather information
return transInfo;
}
}
public class TransportationDetails
{
private double price;
private string typeOfVehice;
}
41 | Page
Kenneth Lopez Rodriguez
Madeleine Sangoi
Jiawei Mao
42 | Page