Product Vision
Product Description
Our project will be an airline company flight reservation system. Our company is called AirPrairies. We will be operating routes locally within Canada(the big cities) and from Canada to the big cities in Europe, the USA, and Mexico. Users will be able to book flights, add luggage, etc. Moreover, we will be offering bus fares options for budget travelers.
Essential Features:
- Flights Booking
- See Flights and Destinations
- See Detailed Times about Flights
- Accessible Design
Need and Value
Reservation made easy and gives the customers a variety of options and a variety of prices that serve all needs, and is certainly an important software for AirPrairies to increase their flight ticket sales and help the company grow.
Architecture
System Architecture
Personas
Olivier is a 29 years old French man who moved to Saskatoon a couple of weeks ago, as he accepted a very tempting offer to work as an accountant for the government of Saskatchewan. His wife Marion has a stable job back in their home town Montpellier, France. Olivier and Marion are concerned about how often they will be able to see each other and are both not having an easy time dealing with the distance. Their child Charlie is quite sad that his father is leaving, but he is still hanging on to his father's words that he will be visited often. Olivier is quite busy and stressed by moving to a new place alone. He was delighted to know that AirPrairies is a new airline company that operates international flights with lots of great deals and benefits. He is hoping that the AirPrairies reservation application is simple to use and is going to save him money and time.
-
User Role of Oliver: International Traveler with basic knowledge of computers and the Internet.
Wendy is 23 and has lived in Saskatoon all of her life. She works in a management position for a large corporation where she spends much time online using various software and websites to perform all her required tasks. While she does not have a partner, Wendy does have a cat named Billy, who loves attention. Wendy is cautious with her spending since she is still in the process of paying off her student loans, but she dreams of traveling around the world and AirPrairies excites her since she knows she will be able to get the best deals for her budget.
-
User Role of Wendy: Budget Traveler with professional skills of computer technology
Charles is a 40-year-old professor working at his local University, his career allows him to maintain a steady source of income, and along with his partner Harley, they can raise a large family of 5. Despite his busy schedule, Charles likes to spend time with his family by planning a family vacation every summer. His profession allows him to be proficient with a computer, but he is often frustrated with the difficulty of finding a cheap flight for his family. He is looking for an application that will help him with the bookings and keep track of his flights.
-
User Role of Charles: Frequent Traveler with the proficiency of using the computer and the Internet.
Ari is a 35-year-old businesswoman who has been running her local business CPJS.inc in Hamilton for the past few years. Throughout the years Ari managed to open her shop and start a small family of 3. Recently, she is fortunate enough to obtain a partnership with a large cooperation serpent.coop in New York. Not wanting to leave her family and her shop, she needs to make frequent trips to Europe to met with executives of serpent.coop to discuss sales and possible plans for the future. Although her business has allowed her to have excellent computer and communication skills, it has also kept her busy and she hasn’t had many opportunities to travel. The current application Ari is using can often be cluttered and difficult to use. Ari is looking for a way to book flights that is easy to use, efficient and allows her to travel quickly from her home to her meeting in Europe.
-
User Role of Ari: Business Traveler with general knowledge of computers and the Internet
Miely is a 29-year-old mother of two who came to Saskatoon when she was 18 as an international student from China. She is currently working for Statistics Canada as a Data Analyst. Miely has lots of experience of booking flights back home every summer when she was still an international student. Now with secure employment and having a happy family, she and her husband Andy will always plan to have two oversea vacations annually, sometimes together with their parents coming from China to join their vacation together. Since Saskatoon is an inland city without direct flights to go abroad, it's always hard for Miely, a regular computer and website user with a highly-technical profession, to plan the most convenient and/or most economical trip even though she is an experienced flight planner for years. She urgently needs an application to simplify her flight booking needs.
-
User Role of Miely: Family Traveler with professional skills of computer technology.
Epics
Olivier:
- I would like to know the exact length of the trip and what's the final price before booking to have a sense of awareness.
- I would like to learn more about the company and their history
Wendy:
- I want a service that is quick and easy to understand without prior knowledge.
Charles:
- I want to be able to find the best available flights for my family
- I want to be able to keep track of flights that I’ve taken in the past and flights, I will take in the future.
Ari:
- As a business runner, I want to be able to book a flight that can help me get to my destination the quickest.
Miely:
- I want to see a more reasonable combination of flight routes considered comfortability and affordability.
User Stories Implemented
Prioritized User Stories:
-
Final Product Deliverables
- Searching for Flights ✓
- Retrieval of Reservation ✓
- Usability of Web Pages ✓
- Origin Time Indication ✓
- Displaying Search Results ✓
- Language Options of Pages ✕
- Security of Payment Page ✓
- About Page of the Company ✓
- Searching for Flights ✓
Quality Assurance Plan
Introduction
Our team is developing a website for a flight reservation system; therefore we will be combining the conventional testing strategies of software and the innovated Web Application Testing.
Scope
Reference of FURPS+
-
FURPS:
- Functionality
- Usability
- Reliability
- Performance
- Supportability
-
The Plus +:
- Design constraints
- Implementation requirements
- Interface requirements
- Physical requirements
-
Functional:
All eight ranked user stories with eligible acceptance tests (from Milestone 5 [Storyboard]). -
Non-Functional:
The font size of text, webpage loading speed, etc.
Quality Objective
An easy-to-use web application for not just markers but everyone who has basic technology of computer.
Testing Methodology
- Deliverables:
- A fully-functioning system without bugs
- Testing Approach:
- White-box Testing
- Black-box Testing
- Testing Levels:
- Unit Testing
- Integration Testing
- System Testing
- Operational Acceptance Testing
- Testing Types:
- Installation Testing
- Compatibility Testing
- Regression Testing
- Acceptance Testing
- Alpha Testing
- Beta Testing
- Functional vs Non-Functional Testing
- Test Tools with Bug Repoarting:
- Brackets without Debugger
- Visual Stduio with Debuger
- Browsers: Chrome, Firefox, Edge, etc.
Inspection Methodology
- Deliverables:
- A Well-Developed Website Ready to be Used
- Inspection Approach:
- Planning
- Overview Meeting
- Preparation
- Inspection Meeting
- Rework
- Follow-up
Acceptance Test
- Refer to the section of "Acceptance Test Results"
Project Board
Source Code
- Click this maser branch to start viewing source codes of this project
Readme
Getting Started
Instructions to get the web application running on a local machine.
Prerequisites
What must be installed to run the software:
nodejs, sqlite3, express, ejs, nodemailer
Installing
Initially, download and install nodejs
https://nodejs.org/en/download/
How to Run
Command line tool(s) must be used: Windows PowerShell or Mac Terminal
Note: Must run the command line tool(s) as an administrator or Sudo in Mac OS
Cloning the Project:
Clone the git master branch using the command line tool(s)
git clone https://git.cs.usask.ca/yol474/cmpt370-fantastic-4.git
Or use the GitHub Desktop to clone a repository to a designated path by entering the below URL
https://git.cs.usask.ca/yol474/cmpt370-fantastic-4.git
Navigate to the cmpt370-fantastic-4 folder that contains app.js in the the command line tool(s)
cmpt370-fantastic-4/
Setting Up the Required Node Modules:
First, use npm to create an empty package
npm init
Keep pressing "Enter" until you see "Is this OK? (yes)"
Enter "yes" to continue
Second, use npm to install the following requirements
npm i sqlite3
npm i express
npm i ejs
npm i nodemailer
Note: if the warning "Permission Denied" is shown, has to re-run command line tool(s) as an administrator or Sudo in Mac Os as indicated previously and repeat the above steps
To Start the Application:
Run app.js using command line
node app.js
Application will be live on port 2020
Enter below URL into your browser, Google Chrome recommended
localhost:2020/
If you would like a reference when booking a flight be sure to use a real email in the form.
The site may need to be reactivated by RE-STARTING THE SERVER to have the latest booking information refreshed since the website is LOCAL-HOSTING.
Wiki
Features details for all milestones and group members
https://git.cs.usask.ca/yol474/cmpt370-fantastic-4/wikis
To Test the Product
Refer to the section of "Acceptance Test Results"
Acceptance Test Results
Following the order in the section of User Stories Implemented
-
1. Searching for Flight Routes:
- Search for a known destination/origin available; for example, "Saskatoon." ✓
- Search for a number that could be related to the departure date, for example, "2020-04-23" ✕
- Search for something that should not exist in the database, for example, "beans." ✕
-
2. Retrieval of Reservation:
- Test if a confirmation page pops up displaying all the details related to the reservation once it is made. ✓
- Check if the confirmation page has all the details required to be presented to the customer:
a. Name, date of birth, address, phone number, email; ✕
b. Type of airplane, flight number, flight date and time, departure airport, destination airport; ✓
c. Terminal number, booking reference. ✕
-
3. Usability of Web Pages:
- Test if the website is popped up and displayed properly. ✓
- Test if all the content of the website is displayed as required. ✓
- Test if all the content of the website is displayed as required and providing ease of use. ✓
- Test if all the content of the website is displayed as required and providing ease of use, besides, meeting the general aesthetics standard. ✓
-
4. Origin Time Indication:
- Test if the local time is displayed correctly. ✓
- Test if the time at the desired destination is displayed properly. ✓
- Test to see if the local time and the time at the destination when the user arrival is accurate. ✓
-
5. Displaying Search Results:
- Check that the exact length and final price is visible to the user on the screen before booking. ✓
- Make sure that the time lengths are not overlapping and are in the proper order. ✓
- The time lengths correspond to the correct time zones. ✓
-
6. Language Options of Pages:
- Test if the user can select the language they want from a dropdown menu. ✕
- After selecting the language, check if the changes are applied to all sections and pages of the website. ✕
- The pages are translated correctly. ✕
-
7. Security of Payment Page:
- Test if a message pops up indicating that the payment is secured and the payment information will not be saved. ✓
- Check that the payment information is not anywhere in the database. ✓
-
8. About Page of the Company:
- Ensure there is a working, visible option from every screen to go the "About" page. ✓
- The "About" page has marked sections that explain the history of the company and its goals. ✓
Domain Diagram
Class Diagram
UML - Class Diagram (Expanded)