-
Notifications
You must be signed in to change notification settings - Fork 1
Home
-
2.1 Purpose
2.2 Process
-
3.1 Client
3.2 Server
3.3 Database
-
4.1 Non-Functional Requirements
-
5.1 Wireframes
5.2 Flow Diagrams
-
Mahesh Ravuri
-
Nina Lee
-
Bryce Remick
-
Matt Cagle
The idea behind WeFly(name pending) is to automate the process of finding the cheapest available airline tickets. There are many websites that exist to find cheap tickets, but they only search from one city to another. This is a one-to-one relationship. Our idea is to expand this search into a many-to-many relationship. Instead of searching for the cheapest tickets from a specific airport to a different specific airport, our website will search for the cheapest tickets from airports within a certain radius to airports within a certain radius. This enables a larger ticket dataset, which will inherently increase the odds of finding an extremely low priced airline ticket.
We will require a user to input a source airport and destination airport along with a radius(miles) and a calendar date or span of days. Once we have this user data, we have two options:
-
Plug this data into several REST APIs which will return all the ticket data(price, date, airline, city, etc..) for the specified dates.
-
Compare this specified user data with a database full of routinely prefetched ticket data. (This could be a years worth of ticket data or more).
Whatever option we choose, we will then have to find the cheapest tickets and then display them on the front end. Each ticket object will contain a url of the source, which is where the user can actually purchase the ticket.
The client is the user interactive experience. This is a web-application that users utilize to interact with the rest of the components. The client’s role is to use the location that was inputted by the user to acquire the city and the cities in the surrounding area. In addition, the client will also filter the cities with airports and display them on a map to visualize it. The client will also provide preferences that users can choose from, such as the radius of the surrounding cities, one-way flights, round trip prices, and a filter to filter the cheapest price on the flight tickets acquired from the server. Lastly, the client will display the ticket prices and store them in a data structure and filter out the cheapest tickets.
The server is responsible for processing all requests from all clients, then it interacts with the database if necessary, and then relays the responses back to the users. The server is always running, handling user requests or just gathering flight data up to the next 9 months for major destinations so we can get responses with very minimal latency
The database is interacted through nodejs. The database will also store real-time information such as Airports, ticket prices, origin location( City, Country [lat,long] ), destination location( City, Country [lat,long] ), trip duration, origin departure time, destination arrival time, airline
ID: NFR1
TITLE: Home Page
DESC: Once the page has loaded, the user will be presented with a few search bars where they can input destinations, dates; a Round Trip, One Way, and Search Button; an empty sidebar in which the results will fill, and an interactive map.
RAT: In order for the user to see his/her options
DEP: None.
ID: NFR2
TITLE: Round Trip Button
DESC: Given that the user has clicked on this button, the Return Date Calendar bar will remain
RAT: In order for the user to choose a return date
DEP: NFR1
ID: NFR3
TITLE: One Way Button
DESC: Given that the user has clicked on this button, the Return Date Calendar bar will disappear
RAT: In order for the user to only choose the departure date
DEP: NFR1
ID: NFR4
TITLE: Departure Search Field
DESC: Given that the user has clicked on this search field, the user will be able to enter their departure location
RAT: In order for the user to choose the departure location.
DEP: NFR1
ID: NFR5
TITLE: Destination Search Field
DESC: Given that the user has clicked on this search field, the user will be able to enter a destination location.
RAT: In order for the user to choose a destination location.
DEP: NFR1
ID: NFR6
TITLE: Departure Date Calendar
DESC: Given that the user has selected this field, the user will be able to select their departure date.
RAT: In order for the user to select the day they wish to depart from the location.
DEP: NFR1
ID: NFR7
TITLE: Return Date Calendar
DESC: Given that the user has selected this field, the user will be able to select their return date.
RAT: In order for the user to select the day they wish to be returning from the location.
DEP: NFR1, NFR3
ID: NFR8
TITLE: Radius Slider Bar
DESC: Given that the user has selected this field, the user will be able to select the radius(in miles) of their departure and destination location.
RAT: In order for the user to select the radius of their locations, searching for nearby airports.
DEP: NFI1
ID: NFR9
TITLE: Search Button
DESC: Given that the user has clicked on this button or pressed Enter on their keyboard, the search will bring up an interactive web map of the destinations and the prices of the tickets of the selected destinations which will be presented in the empty sidebar.
RAT: In order for the user to be able to see their cheapest ticket option and see a map of the surrounding destinations of where the cheapest tickets are available for departure.
DEP: NFR1, NFR4, NFR5
ID: NFR9
TITLE: Interactive Map
DESC: Given that the user has clicked on the search button, the user will be presented with a map of the locations chosen. If the user has chosen a radius for the locations, the map will also show the nearby airports of the locations chosen. In addition, the map will also display a line connecting the departing airport to the destination airport.
RAT: In order for the user to see the location of the departure and destination flight and the nearby airports of the locations.
DEP: NFR1, NFR8, NFR9
ID: NFR10
TITLE: Sidebar
DESC: Given that the user has clicked on the search button, the user will be presented with flight tickets of his/her location and flight tickets of the nearby airports if the radius was chosen by the user.
RAT: In order for the user to see their flight ticket prices and nearby airport flight ticket prices, to find the cheapest option.
DEP: NFR1, NFR9
This section contains all of the functional and quality requirements of the software system.
ID: FR1
TITLE: Access web application
DESC: A user should be able to go to the web application on any browser.
RAT: In order for the user to use the web application.
DEP: None.
ID: FR2
TITLE: Search
DESC: Given that the user has loaded the web application successfully, the user will be posed with a few search fields that they can fill out accordingly and buttons to choose whether they want a round trip or a one way trip. Those search fields are From, To, Departure Date, Return Date, and Radius (optional). The buttons are Round Trip and One Way trip. If the fields aren't fill out correctly, it'll throw an error message to the user.
RAT: In order for the user to search for cheap flight tickets based on the dates and their chosen airports.
DEP: FR1
ID: FR3
TITLE: Search results in a map view
DESC: Given that the user has entered all the correct information in the search fields, the results will be displayed in an interactive map.
- On the map, the relevant flight From and To locations will be shown according to what locations the user has inputted.
- The surrounding airports of the From and To locations based on the radius
RAT: The way results are displayed on a map
DEP: FR2
ID: FR4
TITLE: Search results in a list view
DESC:
- Given that the user has entered all the correct information in the search fields, the ticket results will be displayed in the sidebar. The results will be displayed in a top-down fashion where the top of the list are the tickets of the beginning date chosen till the ending date chosen.
- The ticket will be shown in a box which will display:
- The airport you're departing from, to the airport you'll arrive at
- Ticket Price
- The time and date from departure and the time and date of arrival
- Duration of the flight
- How many layovers the flight will have
RAT: The way results are displayed in a list
DEP: FR2
/master/Visualizations/Wireframes /master/Visualizations/flowdiagrams /master/Visualizations/usecase
- Github
- Sketch
- LucidChart
- Node.js
- Express.js
- Vue.js
- Database