Travel Bud Web Application

Technical Report

Design and functionality for
Travel Bud Web Application

  1. Ioana Cobzariu
  2. Vlad Ignea
  3. Carmen Nistor
  4. Bogdan Rotariu

Abstract

Travel Bud is a Web Application meant to help people save time and hassle in planning and organising their trips, by recommending flights of interest based on their needs, through an easy and intuitive user interface. This document consists of preliminary considerations about the Web application design and interaction, main functionalities and features provided.

Motivation

Even for experienced travelers, planning and booking trips can be daunting, especially if time is limited and there is no idea for the destination. Not to mention the group trips that are so difficult to organize, because finding suitable period for everyone is so laborious. These are some of the reasons that lead to the development of Travel Bud Web application, a tool meant to help users, by recommending flights of interest based on some predefined criteria.

Main goals of Travel Bud are:

Main features provided:

System requirements and design

Travel Bud Web application contains the following modules: Authentication, Flights, Recommendations, Buddies and Reports, that will be presented next from the user interaction point of view. The functions provided by these modules can be accessed using the available menu, that has the following structure.

Main menu structure

The only function available for visitors will be to search flights based on selcted criteria from the form. They will only have the posibility to view the list. If trying to book, they will be redirected to the Sign Up form.

Authentication module

Within this module, the user can access all the account related actions, from creating a new account to updating the data from the profile.

Use Case for Authentication module

For authentication, on the landing page the visitors can access the “Sign In” button that redirects them to an Authentication Webpage where there 2 options:

  • Log in - if they already have an account they can authenticate using the email and the password, or they can use Google/Facebook credentials. The "Forgot password" option will send an email to the user's email containing a link for reseting the password.
  • Sign up - for new users that want to create an account. In order to achieve that, the following data are reuquired:
    • Personal Information: first name, last name, email, password , birth date;
    • Preferences - the user has the posibility to select multiple criteria that will be taken into consideration when recommendations are made(to be detailed in the Recommendations module).
    • Google Calendar account - by checking the "Sync Flight Events with google Calendar" checkbox, the user is prompted to introduce the Google Calendar credentials and he is asked if he agrees for the Web app to access data from his calendar.
After all the data is validated, a confirmation link is sent on the email and by clicking on it the account is created.

Buddies module

Within this module, the user has the posibility to manage the buddies and the groups that they belong to.

Use Case for Buddies module
When adding a new buddy, the user is asked to introduce his Google Calendar account. The buddy will be asked via email to confirm that he agrees to share information with the user.

For this module the following rules apply:

  • Every user must be assigned to a group.
  • A group can't be removed if it contains at least one buddy. All the buddies must be removed from the group in order to be able to remove the group also.

Recommendations Module

The user can choose whether he wants to see recommendations for single travel(My own submenu option) or for group travel(With buddies submenu options). For single travel the recommendations are based on data from user preferences and Google Calendar, while for group travel the flights are synchronized with buddies’ Google Calendar and their preferences. The results are returned in form of a list and for each item there is an additional book button which redirects the user to a credit card payment page. If user is not logged in, he will be redirected to “Login” form.

When accessing With buddies submenu, the user will be asked to choose the buddies that he wants to receive recommendations for by displaying the list of buddies with a checkbox in the left side, which will be marked or not, according user preference. Afterwards, by using the search flights button, the user will be able to checkout trips together with the selected users.

There is also another available feature - Flight Alert and Meteo Alert - recommendations based on national bank holidays, international events or top destination cities along with weather information on the destination. This feature is available for both logged and unauthenticated users.

Flights module

Besides recommendations, users have to posibility to search flights according to other criteria that they can select from the form(Departure date/Arrival dates and locations, criteria like travel business, airline company, travel criteria). The results are returned in form of a list and for each item there is an additional book button which redirects the user to a credit card payment page.

Reports Module

The user will be able to obtain different types of reports:

  • map - a real-time world map that will have marked countries/cities visited until current date. The map will be presented in Flash format.
    Report - map with visited countries
  • List of Flights - the chart can be customized to show the flights based on certain parameters:
    • User - the field is autocompleted with "Me" meaning the flights will be shown for the logged user, but the dropdown list allows the user to select another person(from a group that they are both part of).
    • Period - the start date and the end date for which the flights will be shown.
    • Airline - one or more companies can be selected
    By pressing the "Show flights" button, the chart is refreshed with the filtered data.
    Report - Chart with flights

Personas

Group of users

  • Administrator - the main role of this user consists in maintaining the Web tool, user management (roles, privileges) and testing.
  • Manager – with deep experience in the travelling field, the manager overseas all the features of the application, making decision based on the reports available in the Report Menu.
  • Regular users – are represented by all people interested in travelling cheap and easy, which do not have so many time to search for flights. Their interaction with app will be presented next.

Primary - Regular Users

Andreas GABALIER
Age: 32
Location: New York, SUA
Occupation: Hedge Manager at Advanced Publications (media industry)

Main activities

  1. busy business man
  2. likes to travel but has no time to organise and schedule trips/flights
  3. travels frequently both for work and for pleasure
Saken TLEUBERDIN
Age: 22
Place of origin: Astana, KAZAHSTAN
Location: Iasi, Romania
Occupation: ERASMUS+ student at Alexandru Ioan Cuza University of Iasi, Faculty of Economics and Business Administration, Master Program: Software Development and Business Information Systems

Main activities

  1. likes to travel
  2. low budget -> interested in offers
  3. makes frequent visits to Kazahstan to meet with his relatives
Megan ROTH
Age: 28
Location: Berlin, GERMANY
Occupation: advertiser at Protecter & Gamble

Main activities

  1. likes to travel with her friends(+ their families)
  2. finds it hard to synchronize an ideal time for trips
  3. is interested in all sort of flight deals and offers

Secondary – management & maintenance users

Personas

  • Manager - experience in travel field, data driven, needs real time reports in order to improve business.
  • Administrator - maintenance functionalities of the Web Tool
Bogdan NADGOB
Age: 33
Location: Iasi, ROMANIA
Occupation: manager at Travel Bud

Main activities

  1. overseas the features of Travel Bud
  2. consults on daily bases the reports on the use of the web tool by regular users
  3. makes pertinent decision regarding future improvements, new features etc
Alexandru TUTUMANU
Age: 27
Location: Iasi, ROMANIA
Occupation: administrator at Travel Bud

Main activities

  1. sets up administrator and service accounts
  2. maintains system documentation
  3. interacts with users and evaluates the features of the application
  4. tests functionalities of the Web Tool

Branding

Travel Bud project represents the ultimate Web application destined for all travellers of the world. Our motto “Travel Bud – Your everyday Travel Assistant” captures our main objective – to satisfy travelling needs for busy people, which don’t have too much time to book tickets, look for best offers or make reservations.

As time has become priceless, Travel Bud is the best tool to save people’s time and money by becoming more focused on customer’s needs and wishes.

While our concept relies on ultimate technologies, it comes under a friendly design, easy to use applications with personalized features, depending on the user.

The colours used for Travel Bud have been chosen using a specific application (Paletton.com). We chose the use mostly blue for all pages of the application due to the relaxing and calming effect of this colour.

Color palette used for Travel Bud design process

The colours used in texts present a high contrast rate so the user won’t have difficulties in reading the information provided on the website. This is why Travel Bud can be used on mobile devices (smartphones, tablets), even if the users are outdoors and have glare on their screens.

Similar Approaches


GetGoing

If your plans are flexible, take advantage of the website GetGoing, which promises to save travelers up to 40 percent. Choose two destinations in the same region of the world (for example, Vienna and Geneva, or Costa Rica and Panama) and enter your travel dates. Then provide your billing information to complete your reservation. The Get Going team randomly selects one of your two options.


SeatGuru

Enter an airline and flight number and SeatGuru calls up a detailed airplane plan, indicating seats that are desirable (emergency exits, those with extra legroom, etc.), average, and simply bad (reduced legroom or recline). It also has reviews of different airline services, as well as quick-scan icons for such in-flight amenities as food, entertainment, in-seat power ports, and Wi-Fi.


PinTrips

The idea of pinning something on the web began with Pinterest. Now, Pintrips brings that kind of functionality to online airfare searches. You can pin fare results you like and collect them in a personal folder on the Pintrips site. It makes it easy to compare your flight options and share them with others.

System Internals


Travel Bud Technology Stack

Service Technology
Backend Processes PHP
FrontEnd Processes React (JS)
Code Management GitHub
Continuous Integration Jenkins
Server Management Apache Mesos
CDN GStatic Google Static Content
CDN Provider Akamai Edge
CMS Telligent/ WordPress
Monitoring Apache Chukwa
Authentication OAuth 2.0
Calendar iCalendar
Airports/Routes Open Flight Data
Weather AccuWeather / Open Source DataSets
Reports PHP
Recommendation Internal Functionality API, PHP
SSL Certificate Comodo PositiveSSL
Encoding UTF-8

Authentication

TravelBud authentication will be cloud based, using OAuth 2.0 protocol for Google APIs and Facebook Login for user login and authorization. We came up with this idea starting from the need of a decoupled API-based microservices architecture.

Facebook API Permissions: email, public_profile, user_friends, user_likes
Google Scopes:

  • https://www.googleapis.com/auth/userinfo.email
  • https://www.googleapis.com/auth/userinfo.profile
  • https://www.googleapis.com/auth/plus.login (for circles and social)

Module Endpoints

URL Description
POST /auth/basic Given username & password, returns a JWT on successful authentication
POST /auth/register Given a payload of credentials, creates a new user resource
POST /passwords/reset Sends an password reset email
Google Authentication Webflow

AccuWeather API

  • The AccuWeather API provides access to location based weather data via a simple RESTful web interface.
  • Data responses are returned in JSON.
  • The resource used is LocalWeather, which provides weather data for a particular location. LocalWeather searches require a location key which is provided by AccuWeather and it can be obtained from the response of a text search, city search, geolookup search, postal code search, or point of interest search. Our application mainly uses the city search option.
  • The API provides more than 3.5 million searchable locations, with many cities having alternate names, or aliases, defined to provide flexibility when searching for a particular location. Aliases are used to account for common alternate spellings (Saint Louis, St. Louis, St Louis), historical names (Ho Chi Minh City, Saigon), and accepted alternate names (Derry, Londonderry).
  • Includes current condition observations, 10 day forecasts and also photos displaying current condition observations (they are optional, and in order to be obtained, an additional parameter is added:"getPhotos=true").

OpenFlights Data API

  • OpenFlights Airports Database contains over 10,000 airports, train stations and ferry terminals spanning the globe. Every airport has a unique identifier, a name and the main city that it serves.
  • It allows the user to map flights around the world, search and filter them and calculate statistics. It also provides information about airport route maps and airline that fly there.
  • We will use the Airlines Database as well, which contains 5888 airlines.
  • The Route Database is the most important one, as it contains 59036 routes between 3209 airports on 531 airlines spanning the globe. It is important to find the most useful route for our users based on their preferences.

Calendar API

The Calendar API is a REST API that accessed through explicit HTTP calls; the API exposes most of the features available in the Google Calendar Web interface.

The application must use OAuth 2.0 to authorize requests. No other authorization protocols are supported. As our application uses Google Sign-In, some aspects of authorization are handled.

Google Calendar allows client applications to view and update calendar events in the form of JSON feeds. Our application uses Google Calendar API v3 to create new events, edit or delete existing events, and query for events that match particular criteria

The application also uses a Google Calendar Gadget, a custom HTML and Javascript component that runs within an iframe and it can be easily embedded in the web page. The gadget is used to create the calendar specific to a single user, but also the calendar shared with the other users(in the case of groups). Using JSON protocol, events are added to the user's calendar instead of included as an external calendar, so write calls are being made to a user's calendar (read/write access to Calendars, based on authentication criteria).

A standard calendar event entry in JSON format looks something like this:
{
"summary": "Puppy's birthday",
"start":{"date": "2017-02-02"},
"end": {"date":"2017-02-03"}
}

Of course, extra JSON elements can be added, depending on the complexity of the event.

Calendar

Conclusion

After a quick review of Travel Bud and its main features it is obvious why the application can be considered as one of the highest particularized solutions for travelers nowadays. Travel Bud comes recommended by a long list of benefits for the users, mostly for the fact that:

  • it is an unique application which combines information from several platforms
  • it is highly competitive in comparison with similar projects
  • it is designed for specific needs of today’s travelers
  • it is based on the newest and most innovative technologies

In the future, a more detailed description of the application, its function and features will complete „the big picture” on Travel Bud, making it your favourite traveler guide all over the world!

References

Iaşi, 2006
Servicii Web, by Alboaie, L., Buraga, S. ; .
Smart Cities Conference (ISC2), 2016
CrowdSensing for smart mobility through a service-oriented architecture, by Melis, A., Mirri, S., Prandi, C., Prandini, M., Salomoni, P., & Callegati, F. (2016, September) ; .
Mobile Information Systems, 2016
A Service-Oriented Approach to Crowdsensing for Accessible Smart Mobility Scenarios, by Mirri, S., Prandi, C., Salomoni, P., Callegati, F., Melis, A., & Prandini, M. (2016) ; .
Iaşi, 2006
Tehnologii XML, by Buraga, S. ; .