7/23/2019 Project Report Umang
1/99
Page 1 of 99
amadeus.com
PROJECT REPORT
(Project Semester JanuaryJune 2015)
Creating SAMOA Reporting Application for Android Devices
Submitted by
Umang Bhola
Student ID 12106010
Under the Guidance of
Dr. Poonam Saini Arpan Chatterjee
(Faculty Coordinator) (Industry Coordinator)
Assistant Professor Development Manager, Mid-Back Office
Department of Computer Science & Engineering Reservation, Distribution & Mid-Back Office
PEC University of Technology Amadeus Software Labs Pvt. Ltd., Bengaluru
Department of Computer Science and Engineering
PEC University of Technology, Chandigarh
(Deemed University)
January to May, 2015
7/23/2019 Project Report Umang
2/99
Page 2 of 99
amadeus.com
DECLARATION
I hereby declare that the project work entitled Creating SAMOA Reporting Application for
Android Devices is an authentic record of my own work carried out at Amadeus Software
Labs Pvt. Ltd., Bengaluru as requirements of six months project semester for the award of
degree of B.E. Information Technology, PEC University of Technology, Chandigarh, under
the guidance of Arpan Chatterjeeand Dr. Poonam Saini, during January to May, 2015
Umang Bhola
12106010
Date: ___________________
Certified that the above statement made by the student is correct to the best of our knowledge
and belief.
Dr. Poonam Saini Arpan Chatterjee
(Faculty Coordinator) (Industry Coordinator)
Assistant Professor Development Manager, Mid-Back Office
Department of Computer Science & Engineering Reservation, Distribution & Mid-Back Office
PEC University of Technology Amadeus Software Labs Pvt. Ltd., Bengaluru
7/23/2019 Project Report Umang
3/99
Page 3 of 99
amadeus.com
ACKNOWLEDGEMENT
This project report is the end of my journey in completing the project, Creating SAMOA
Reporting Application for Android Devices. I have not traveled in a vacuum in this journey.
This project has been kept on track and been seen through to completion with the support and
encouragement of numerous people. The satisfaction that accompanies the successful completion
of this project would be incomplete without the mention of people whose ceaseless
cooperation made it possible, whose constant guidance and encouragement crown all efforts
with success.
At this moment of accomplishment, first of all I pay homage to my guide, Mr. Arpan
Chatterjee. This work would not have been possible without his guidance, support, valuable
comments and encouragement. Under his guidance I successfully overcame many difficulties
and learnt a lot. Despite of his busy schedule, he used to review my progress, give his valuable
suggestions, making substantial influences and enrich my ideas.
Im highly indebted to Ms. Ami Satyen Desaifor the time she spent on helping me handle the
road blocks that appeared and help in evolving alternate strategies in coping such situations.
I also place on record, my sense of reverence to the entire Mid Back Office teamat Amadeus
ranging from all Product Developers (Keerthi Narayan and Nakul Pathak), Software
developers (Sindhura Venkatesh and Pavan Gupta) for their insightful comments and
constructive criticisms, invaluable contribution to the development of application and
comprehending the work flow of existing Web application.
Lastly a sincere thanks to my college and my college mentor, Dr. Poonam Sainifor giving me
the opportunity to have a delightful industrial training experience under experienced industry
experts and constantly nurturing with her academic and humane counsel, guidance and regular
monitoring. Finally, Illlike to say that I strongly believe that the experience gained during the
tenure of this project is going to go a long way with us in respective corporate future.
Umang Bhola
7/23/2019 Project Report Umang
4/99
Page 4 of 99
amadeus.com
Table of Contents
Declaration.............................................................................................................................. 2
Acknowledgement...............................................................................................................3
List of Figures........................................................................................................................ 9
List of Tables....................................................................................................................... 11
List of Abbreviations Used.........................................................................................12
Chapter I
Summary................................................................................................................................ 13
Chapter I I
Introduction..................................................................................................................... 16
2.1
Project Concept............................................................................................17
2.1.1 AIMO Reporting................................................................................17
2.1.2 Why SAMOA Reporting?..........................................................................20
2.1.3 What is SAMOA21
2.1.3.1 SAMOA Overview21
2.1.3.2 Functionalities of SAMOA23
2.1.3.3 SAMOA Architecture Overview...24
2.1.3.4 Feature of SAMOA25
2.1.3.5 Reports Generated in SAMOA..26
2.1.3.6 Graphical Dashboard.28
2.2Development of SAMOA Reporting Android Application.........................29
7/23/2019 Project Report Umang
5/99
Page 5 of 99
amadeus.com
2.3Application Description...............................................................................30
2.4Actors/ Users Definition...............................................................................33
Chapter I I I
Work......................................................................................................................................... 34
3.1Walkthrough of the Application...................................................................35
3.1.1 High Level Architecture of the Application..35
3.1.2 Logical View of the Application35
3.1.3 Logging in into the Application.36
3.1.4 Dashboard Menu37
3.1.5 Template Generation for Reports...39
3.1.5.1 Input Criteria......39
3.1.5.2 Process...42
3.1.5.3 Output42
3.1.6 Graphical Dashboard.43
3.1.7 Scheduling Notifications44
3.2
Tools and Technologies Used......................................................................45
3.2.1
Technologies Used.45
3.2.1.1 Android App Development45
3.2.1.1.1 Android......46
3.2.1.1.2 Development Process.48
3.2.1.1.3 Android Applications.48
3.2.1.1.4 Scope of Android Application Development49
3.2.1.1.5
Application Fundamentals.49
3.2.1.1.6 Application Workflow...50
3.2.1.1.7 Application Components.......................................52
3.2.1.2 RESTful Web Services..53
3.2.1.2.1 Request Methods54
3.2.1.2.2 RESTful Web Services in Android55
7/23/2019 Project Report Umang
6/99
Page 6 of 99
amadeus.com
3.2.1.2.3 HTTP Annotations.55
3.2.2 Tools Utilized....56
3.2.2.1
Eclipse56 3.2.1.1Introduction56
3.2.1.2Eclipse Installation.57
3.2.2.2 Android SDK.58
3.2.2.3 Android Development in Eclipse: ADT Plugin.58
3.2.2.3.1 SDK Tool Integration59
3.2.2.3.2 Code Editors...60
3.2.2.4 Apache Tomcat Server...62
3.2.2.5
Microsoft SQL Server63
3.2.2.6 Google Charts API64
3.2.2.7 Android Virtual Device (AVD).65
Chapter I V
Industry.................................................................................................................................. 66
4.1About Amadeus............................................................................................67
4.2Company Structure......................................................................................68
4.3
History..69
4.4
Overview of Companys Activities..73
4.4.1 Distribution73
4.4.2 IT Solutions73
4.5Amadeus India.....74
4.6
Amadeus Products and Services..754.6.1 Amadeus Selling Platform.75
4.6.2 Amadeus.Net..75
4.6.3 Amadeus LinkHotel...76
4.6.4 Online Travel Agencies.76
7/23/2019 Project Report Umang
7/99
Page 7 of 99
amadeus.com
4.6.5 Net Trans Solutions77
4.6.6 Amadeus Ticket Changer...78
4.6.7 Other Services78
4.7Types of Customers.79
4.8Presence of Amadeus Worldwide79
4.9Amadeus Bangalore (India).80
4.9.1 Office Description..80
4.9.2 Amadeus Labs, Bangalore Divisions.80
4.9.2.1Airline IT...80
4.9.2.2Airport IT...80
4.9.2.3Architecture, Quality Engineering and Governance......81
4.9.2.4Reservation, Distribution and Mid-Back Office81
4.9.2.5Service and Ecosystems.81
4.9.2.6Mobile Competency Centre...81
4.9.2.7New Business Unit.82
4.9.2.8Search, Shopping and Pricing....82
Chapter V
Review.................................................................................................................................... 83
5.1Project Review.............................................................................................84
5.1.1 Major Learnings.....84
5.2Company Review.........................................................................................85
Chapter VI
Details of Work.................................................................................................................. 86
6.1
Introduction..............................................................................................87
6.2Functional Aspect........................................................................................87
7/23/2019 Project Report Umang
8/99
Page 8 of 99
amadeus.com
6.3
Scope of the Application..............................................................................88
Chapter VI I
Conclusion and Future Scope of Work...............................................................89
7.1
Introduction..................................................................................................90
7.2Conclusions Drawn......................................................................................90
7.3Future Scope of Work..................................................................................92
Chapter VI I I
Impediments and Suggestions..................................................................................93
8.1
Introduction..................................................................................................94
8.2
Impediments Encountered............................................................................94
8.3Suggestions...................................................................................................95
8.3.1 College Point of View................................................................................96
8.3.2 Industry Point of View..............................................................................96
Chapter I X
References............................................................................................................................. 97
7/23/2019 Project Report Umang
9/99
Page 9 of 99
amadeus.com
List of Figures
INDEX NAME PAGE NO.
F igure 2.1 Front, Mid and Back Office 17
F igure 2.2 (a) Structure of a Booking File 18
F igure 2.2 (b) Structure of a Booking Folder 18
F igure 2.3
Structure of a TTR for a Sample Travel Agent. 19
F igure 2.4 Current AIMO Reporting Module 20
F igure 2.5 SAMOA Services 21
F igure 2.6
Proposed SAMOA Reports Module 22
F igure 2.7 SAMOA ReportingGUI Architecture 24
F igure 2.8 (a) Sample Graph for Travel Agency Report 28
F igure 2.8 (b) Sample Chart for Top 10 Destinations Report 29
F igure 2.9
User definition for the Application 33
F igure 3.1 Proposed SAMOA Reporting Production Architecture 35
F igure 3.2 Screenshot of the Login Page of the Application 37
F igure 3.3 (a)Screenshot of Dashboard Menu 38
F igure 3.3 (b) Screenshot of the template page for any report 38
F igure 3.4Screenshot of Save Report page for Top 10 Destinations
Report42
F igure 3.5 (a) Pie Chart generated for Top 10 Destinations Report 43
F igure 3.5 (b) Map based View generated for Top 10 Destinations Report 43
7/23/2019 Project Report Umang
10/99
Page 10 of 99
amadeus.com
F igure 3.5 (c) Graphical View generated for Emergency Report 44
F igure 3.6 (a) Scheduler Page for any Report 45
F igure 3.6 (b)Sample Notification in Notification Bar for Top 10
Destinations Report45
F igure 3.7 Android Logo 46
F igure 3.8 Android 5.0 Home Screen 46
F igure 3.9 The development process for Android Applications 51
F igure 3.10 Screenshot of Eclipse Luna with ADT Plugin 56
F igure 3.11 Eclipse Installation 57
F igure 3.12 View of a Graphical Layout Editor 61
F igure 3.13 Apache Tomcat Server Logo 62
F igure 3.14 Client Side Interface interact with the Database Server 63
F igure 4.1 History Chronology of Amadeus 70-73
F igure 4.2 Amadeus Selling Platform Logo 75
F igure 4.3 Amadeus presence over the Globe 79
7/23/2019 Project Report Umang
11/99
Page 11 of 99
amadeus.com
List of Tables
INDEX NAME PAGE NO.
Table 3.1 Input Criteria for Top 10 Destinations Report 39
Table 3.2 Input Criteria for Turnover Report 40
Table 3.3 Input Criteria for Emergency Report 41
Table 3.4 REST Annotations 55
Table 4.1 Information about Amadeus 67
Table 4.2 List of Amadeus Customers 79
7/23/2019 Project Report Umang
12/99
Page 12 of 99
amadeus.com
List of Abbreviations Used
Acronym Description
SI Service Integrator
OBE Open Back End
NAS Network Attached Storage
AIMO Amadeus Integrated Mid Office
SAMOA Services for Amadeus Mid Office Applications
DB Data Base
RDM Reservation, Distribution and Mid-Back Office
MBO Mid Back Office
CSV Comma Separated Value File
TTR Total Travel Record or Booking Folder
QA Quality Assurance
RESTRepresentational State Transfer
SQL Structured Query Language
PoC Proof of Concept
ACT Amadeus Collaborative Technology
PNR Passenger Name Record
SLIM Solution for Light Integrated Mid-Office
7/23/2019 Project Report Umang
13/99
Page 13 of 99
amadeus.com
CHAPTERI
Summary
7/23/2019 Project Report Umang
14/99
Page 14 of 99
amadeus.com
As a Student Intern in Amadeus Software Labs, I got an opportunity to work on the project
Android Application for SAMOA. SAMOA Reporting is a web application built for Travel
agencies Mid Back office reporting needs. SAMOA refers to Service for Amadeus Mid Office
Applications.
The whole idea was to develop a native android application for this existing web application,
develop a POC. So that this idea can be taken ahead once this POC is developed.
SAMOA Services include a mlange of a number of services for the Travel Agencies, including
Invoice Services, Payment Services, and Data Exchange Services. The Key Features of the
application include Create, Modify, Delete reports templates; Batch reports processing;
Download Reports in various formats; Handle large volume of data; Search Reports etc.
The reports are generated by mainly 5 parameters namely: Destination, Start Date, End Date,
Ticket Pricing and TA collections. Using these reports, the agencies can view their business
operations and then devise strategies to streamline their business operations.
The reports are generated by the OBE, as per the data fed by the user and the records saved in the
Database pertinent to the user and the required report. The Executed reports are saved in the
NAS, which can be fetched and be viewed or downloaded by the user.
In this project, I worked mainly on three reports: Turn over Report, Top Destinations Report, and
Emergency report. The purpose of the Top 10 Destinations Report is to list the 10 most
encountered city or country code in the Booking Folder Final Destination information. The
purpose of the Emergency Report is to list the Booking folder that contains a specific Final
Destination: City or Country. The purpose of the turnover report is to give users the comparison
of daily invoiced amounts of document types INV and CRN.
The application developed provides the facility of viewing pre executed reports, saving thecriteria for reports, dashboard interface for viewing all the past activities of the User, Graphical
View of the reports data and feature of scheduling the reports.
7/23/2019 Project Report Umang
15/99
Page 15 of 99
amadeus.com
I developed the mobile application as a Native Android Mobile App, with the UI coded in XML,
with the backend coding in Java and interacting with back end Database and NAS server through
RESTful Web Services, implemented in Java EE.
During the time spent in industry, I learnt the importance of planning, time management and
good programming practices. I was also able to get a better perspective of working of SDLC
(Software development Life Cycle) and how it forms an integral part of the company operations.
Maintaining good coding standards in your code is as important as developing a better logic for
the program. The application was developed, keeping in the mind that its operation should be
easily comprehendible by the user without much of extra effort, ease in operation and user
friendly graphical interface. The project enhanced my awareness about real-time development
and helped me in refining my programming skills.
The project report begins with the introductionof the project along with the project concept and
overview of the complete project undertaken. Then is the brief overview of the SAMOA project:
its need and importance, basic training, about the Amadeus software architecture being used in
SAMOA web application and how the same operation is emulated in my project. The importance
of mobile application development is also reflected under this part. After this, complete details
about the Tools and Technologies used for the development of the project are given. Snapshots
and explanations of the User Interface of SAMOA are described in a separate chapter.
It is followed with the industry section. It gives an insight into the Amadeus products and
services. Amadeus Software Labs has been explained in detail regarding the structure, history
and activities of the company in India.
The review section throws light on the significance of the project, importance of SAMOA
application. Its importance for the Amadeuss employees. It is followed by thedetails of work.
It includes the brief info about the SAMOA, what it offers, its functional aspects and scope in the
industry.
The report then concludes giving final results and future scope of the work done followed by
suggestions and Impediments related to the project semester. BibliographicalReferencesare
mentioned in the end.
7/23/2019 Project Report Umang
16/99
Page 16 of 99
amadeus.com
CHAPTERII
Introduction
7/23/2019 Project Report Umang
17/99
Page 17 of 99
amadeus.com
2.1 Project Concept
2.1.1AIMO Reporting
The Mid Back Office team in the RDM division handles the back end logistic handling that
happens after the creation of PNRs with respect to various GDSs provided by Amadeus. The Mid
Office is involved in the invoicing and the follow up tasks (as illustrated by F igure 2.1) which
include reporting, scheduling of invoices and generation of notifications. The Back office then
deals with the export of this data, downloading of data and sending data to exter1nal application
and delivering information to external providers.
F igure 2.1: Front, M id and Back Offi ce
The information needed for Mid-Office Processes is supplemented by following two sources:
Booking Folder
TTR(Total Travel Record)
These two, with their brief working and origin have been explained below
7/23/2019 Project Report Umang
18/99
Page 18 of 99
amadeus.com
[1] Booking Folder:
Booking folder is the aggregate of Booking Files (ref. F igure 2.2(b)). Each Booking file (ref.
F igure 2.2(a))represents a reservation inside or outside Amadeus. The booking files are the new
generation of PNR. Booking file contains the following sets of information:
Travel Information: GDS and NonGDS content
Financial Information: Price, Tax, Fee, Commission
Payment Information
Document Information: Receipts, Invoices, Credit Notes
Profile Information: Customer and Traveller Information
(a) (b)
F igure 2.2: (a) Structure of a Booking F il e (b) Structure of a Booking Folder
[2] TTR:
The Amadeus Total Travel Recordis the component centralizing access to traveland financial
data and services. The Total Travel Record contains several information such as customer
reference, trip arrangements, services, fees, payments, receipts etc.
For an illustrative view and structure of a TTR. Please refer F igure 2.3.
7/23/2019 Project Report Umang
19/99
Page 19 of 99
amadeus.com
It supports integrated business servicesneeded by the travel agent to manage the travel, for a
particular customer before, during and after booking. Therefore it offers services enabling to
manage travel datastored and to initiate different processes.
F igure 2.3: Structure of a TTR for a Sample Travel Agent.
7/23/2019 Project Report Umang
20/99
Page 20 of 99
amadeus.com
2.1.2Why SAMOA Reporting?
The AIMO solution for Mid Office suffers from 3 major restrictions:
The Reports module is an integrated module in the AIMO product and not an independent
service.
The AIMO Reports module supports only Interactive Reporting (Synchronous processing).
The size of the report data that can be extracted is limited due to XML constraint.
Current AIMO report service cannot be integrated with any other Mid Office applications.
AIMO Reports module provides only standard set of reports to Agencies (ref. F igure 2.4)).
F igure 2.4: Current AIMO Reporting Module
7/23/2019 Project Report Umang
21/99
Page 21 of 99
amadeus.com
So the major aim is to devise a solution which provides the following functionalities:
Mimic the AIMO Reports service and make it work as a stand-alone application.
Provide Batch Processing (Asynchronous mode) for requested Reports.
Enhance the UI to make it more user interactive and to make the report formulation criteria
more robust in long terms.
Thus with the vision of developing such a robust and independent reporting tool, SAMOA has
been developed to replicate the pre-existing current AIMO Reports Module in the SAMOA
Reports Service and to introduce the asynchronous (Batch) mode for report generation. SAMOA
is developed with the following capabilities:
Batch processing (Asynchronous Processing).
The Report size limitations does not exist.
SAMOA Reports Module is an independent service that can be integrated with AIMO or any
other application
2.1.3What is SAMOA?
2.1.3.1 SAMOA Overview
SAMOA (AIMO) reporting is a web application built for travel agencies mid office reporting
needs. It is integrated with AIMO (Amadeus Integrated Mid Office) Mid Office application as a
SAMOA (Services for Mid Office Application) service as shown on next page (Ref. F igure 2.6).
F igure 2.5: SAMOA Services
7/23/2019 Project Report Umang
22/99
Page 22 of 99
amadeus.com
F igure 2.6: Proposed SAMOA Reports Module
SAMOA (AIMO) Reporting is also integrated with AMADEUS selling platforms (SECO and
SELL Classic). SAMOA is a repository of Mid Office services, based on central ACT
components that can be used to build a complete product solution, in combination with Front
Office and Back Office services, third party systems and appropriate graphical user interface.
(Ref. F igure 2.6).
7/23/2019 Project Report Umang
23/99
Page 23 of 99
amadeus.com
2.1.3.2 Functionalities of SAMOA
SAMOA is a repository of Mid-Office Services. There are 2 types of SAMOA Web Services,
Standalone Services and Total Travel Record (TTR) based Services.
The Standalone Services of SAMOA are:
Profile Management
Security Management
Tax computation
Fee Management and Computation
Document Management (Archiving)
Cash Box Management
The Total Travel Record (TTR) based services consist of:
Content Enrichment
Document Production
Payment Management
Feed to Accounting system
Reports
The TTR based services are based on a set of information such as customer reference, trip
arrangements, services, fees, payments, receipts etc. The TTR is a conglomeration of booking
folders including booking files which represents the reservations made inside or outside
Amadeus.
As per the context and scope of my project, it is of import to understand the TTR based services.
Reports are generated with respect to the data which can be accessed by TTR. The reports that
are generated by the interaction between the TTR data and the Profile Information.
7/23/2019 Project Report Umang
24/99
Page 24 of 99
amadeus.com
2.1.3.3 SAMOA Architecture Overview
The following write up presents a brief vignette of the application flowof SAMOA Reporting.
The graphic representation of the same has been given in Figure 2.7 (Ref. F igure 2.7)
Travel Agents login to SAMOA Reporting application using their LSS login credentials
GUI sends an XML request over HTTPs to the OBE service for report generation. Load
balancer distributes the application traffic across application servers
OBE service extracts data from the database, performs necessary calculations and create the
reports in CSV format at NAS location
GUI accesses the generated reports from NAS for download at client end in CSV and XLS
format.
F igure 2.7: SAMOA Reporting GUI Architecture
7/23/2019 Project Report Umang
25/99
Page 25 of 99
amadeus.com
2.1.3.4 Features of SAMOA
The key features of SAMOA (AIMO) Reporting application are:
Templates: This feature allows the travel agent to create report templates for future use
without recreating the reporting criteria.
Batch processing:This feature allows the travel agent to submit reporting requests to a First
in First Out queue.
No limit on data volume:The application allows large volume of reports to be generated
and directly accessed from NAS
Multiple report formats: Reports can be downloaded from NAS in XLS and CSV formats.
Scheduler: Reports can be scheduled and the notification can be pushed to the user when the
report is executed. The application allows scheduling of reports at the intervals of: daily,
weekly and yearly.
Dashboard:The Dashboard contains status of report execution and schedules can be seen on
a dashboard. Reports successfully executed can be downloaded from the dashboard.
Search:This module enables the user to search for reports and templates based on name,
status of execution etc.
Graphical Dashboard: It helps SAMOA (AIMO) Reporting application to evolve into a
simple Business Intelligence solution with a graphical dashboard representing following
reports:
1. Top 10 Destinations:
2. Travel Agencies Sales Analysis
3. Provider Sales Analysis
4. Passenger Location Report / Emergency Report
7/23/2019 Project Report Umang
26/99
Page 26 of 99
amadeus.com
2.1.3.5 Reports Generated in SAMOA
Though a total of around 35 reports are generated by SAMOA Reporting using the Booking
Folder and TTR repositories. But I worked majorly on 3 reports namely: Emergency Report, Top10 Destinations Report and Turnover Report. So I will be presenting a concise implication and
implementation of these three reports:
[1] Top 10 Destinations Report:
The purpose of the Top 10 Destinations Report is to list the 10 most encountered city or country
codes in the Booking Folder Final Destination information.
The Report scans information from the General Information section of the Booking Folders,
which can be modified by the user.
The user can limit the Report by specifying a country code in the List field to see the Top 10
Cities most visited in the country.
The User is provided with following options pertaining to the Top 10 Destinations Report:
Save:User can create a Top 10 Destinations report Template for future use.
Submit:User can execute a Top 10 Destinations Report.
Save & Submit:User can create and execute a Top 10 Destinations report Template at the same
time.
Delete:Delete button will be hidden. Deletion is not allowed at Standard Report Type level.
Schedule:Schedule the report for future for execution.
User can either create a Top 10 Destinations Report Template for future use or can execute a Top10 Destinations Report.
7/23/2019 Project Report Umang
27/99
Page 27 of 99
amadeus.com
[2] Turn Over Report
The purpose of the Turn over Report is to get the turnover of a given Travel Agent for a given
time span using the data from the Financial Information from the Booking folder correspondingto that agent.
The User is provided with following options pertaining to the Turn over Report:
Save:User can create a Turn over Report Template for future use.
Submit:User can execute a Turn over Report
Save & Submit:User can create and execute a Turn over Report Template at the same time.
Delete:Delete button will be hidden. Deletion is not allowed at Standard Report Type level.
Schedule:Schedule the report for future for execution.
User can either create a Turn over Report Template for future use or can execute a Turn over
Report.
[3] Emergency Report
The purpose of the Emergency Report is to get the number of bookings made for a particularIATA code corresponding to an airport, city or a country for a given date range.
The Report scans information from the General Information section of the Booking Folders,
which can be modified by the user.
The User is provided with following options pertaining to the Emergency Report:
Save:User can create an Emergency Report Template for future use.
Submit:User can execute an Emergency Report
Save & Submit:User can create and execute an Emergency Report Template at the same time.
Delete:Delete button will be hidden. Deletion is not allowed at Standard Report Type level.
Schedule:Schedule the report for future for execution.
7/23/2019 Project Report Umang
28/99
Page 28 of 99
amadeus.com
User can either create an Emergency Report Template for future use or can execute an
Emergency Report.
2.1.3.6 Graphical Dashboard
The purpose of this requirement is to include Charts for few of the report types. The Charts add
more value to the business by providing real time information, using graphics, and enhance
decision making capabilities of the user.
The Charts or graphs exist for Top 10 Destinations Report, Payment Report, and Emergency
Report (Ref. Figure 2.8(a) for Travel Agency Report Graph and F igure 2.8(b) for Top 10
Destinati ons Report)
The reports identified have a chart type defined and allow user to modify criteria, generate charts
in real time and save those as well.
The user is allowed to zoom-in, zoom-out, save, and print the chart. The user is also able to
paginate through the report details.
F igure 2.8(a): Sample Graph for Travel Agency Report
0.00
5000.00
10000.00
15000.00
20000.00
25000.00
30000.00
7/1/2015 8/1/2015 9/1/2015 10/1/2015 11/1/2015
AmountinEUR
Date
Travel Agency Report
Commission
Fee
Fare
7/23/2019 Project Report Umang
29/99
Page 29 of 99
amadeus.com
F igure 1.8(b): Sample Chart for Top 10 Destinations Report
2.2
Development of SAMOA Reporting Android ApplicationThe idea of development of an Android Application for SAMOA Reporting was brainchild of the
MBO Amadeus Global Head, Jerome Daniel, who in interaction with the MBO Bangalore head,
Sharma Rajasekrahad contemplated to develop mobile application for SAMOA.
The main motive of the project was basically to chalk out a POC for the same which can serve as
a citation for the full-fledged development whenever this project is undertaken in the future the
reasons for the development of a mobile application for an existing web based applications are
quite blatant.
The ubiquitousness of the mobile phones is a well evident reason for this strategy. Nearly
everyone has a cellphone, and smartphones are becoming commonplace, so it will claim we are
just following their customers
The mobile applications pave a way for direct engaging with the customers which can help to
revolutionize the business in a multifarious manner. With the growth of mobile technology
7/23/2019 Project Report Umang
30/99
Page 30 of 99
amadeus.com
comes a large increase in transaction volume -- from status updates to content downloads and
collaboration. As a result, an app that starts small can wind up swamping an organization's
network, database, and budget.
Enabling collaborative app development opens business to new opportunities . Organizations are
increasingly seeking agile platforms that will allow them to interact with a wide range of end-
users and provide tools for collaborative application development. Whatever platform is used, it
should enable developers to build powerful, differentiated mobile apps that will be compatible
with a variety of different devices and operating systems - from iOS to BlackBerry and Android.
The Mobile Application for SAMOA also presents a dual benefit both for the company and the
end user. The end user- Travel agents can view their reports even on fly, the facility of
scheduling of reports can push them notifications via their phones, thus keeping them privy with
their business situations at all points of time
Secondly, The Mobile Application once crystallized can be integrated with AIMO and other
Mid-Office applications, thus serving a promising source of revenue for the company. The
Architectural changes also help it to handle even large volume of data in reports. The application
once developed for one mobile operating system (Android) can be extended to other operating
systems (iOS, Windows, Blackberry) as well.
2.3 Application Description
SAMOA Reporting is an Android application, developed for travel agencies which allows them
to generate templates and view the reports which are critical for their business operations. The
user will not be exposed to the back-end processing that occurs among the NAS, OBE and the
database server. The user will be able to view his past activity of the reports generated and
executed in the dashboard. The facility of Graphical Dashboard allows him to view charts for the
various reports.Since, Due to the time constraint of the project timeline, the user is only able to read the pre-
generated reports, but he is not able to execute the reports currently
The template creation facility is provided for three reports namely: Top 10 Destinations Report,
Turnover Report, and Emergency Report.
The features of the mobile application formulated are listed below:
7/23/2019 Project Report Umang
31/99
Page 31 of 99
amadeus.com
Saving Report:
User is able to save the report template by adding the criteria credentials for a given report
into the database.
The details can be further used to execute the template and then generate a report matching
the criteria details, once the application is provided with the link to the OBE.
Dashboard:
The home page of the application consists of a Dashboard which contains status of report
execution history of the particular user. It will contain all the details for the report including
its Batch ID, Office Id, Date and time of submission, Family of report for which the reports
have generated in past.
Every report will also provide an option to view the template details for the report and also
view the report contents, which is stored in the NAS Server after generation by the OBE
Read a Report:
The user is able to read any report whichever he has generated in the past. Unlike SAMOA
Web Application, where the user is able to download the reports in XLS or CSV format as
per his convenience, the same feature is not available in the mobile application because of the
fact in order to view the XLS report, it will require office suite to be pre-installed on the
device, which cant always be the case.
Hence, the report contents are parsed and then viewed to the user in a list view of tabular
view as per the category of the report selected by the user.
Graphical View / Chart Facility:
Considering the fact the reports can be sometimes gigantically enriched in terms of data.
Hence, Even If the report is parsed and presented to the user in list or tabular view as the case
be, still it will be really cumbersome for the user to scroll around and scan the report. This
mars the basic motive of the development of mobile apps, i.e. being user-friendly.
Hence in order to counter this problem, the application is provided with the facility of
graphical view for the contents of the report like the Graphical Dashboard in the web
application. The charts or the graphs are generated from the contents of the report that is
being read.
7/23/2019 Project Report Umang
32/99
Page 32 of 99
amadeus.com
The user is allowed to zoom-in, zoom-out, save, and print the chart. The user is also able to
paginate through the report details.
The auxiliary feature that is added in case of Top 10 Destinations Report is the map view for
the reports. Suppose a user selects the Top 10 Countries that are users preference for a pre
specified date range, the countries are located on the map.
The user can go into the details of the countries, viewing the number of passengers opting for
that destination and is also allowed to zoom through the view.
LSS Authentication:
The application provides a secure and encrypted authentication mechanism, LSS based
authentication. LSS based log-in mechanism is an Amadeus proprietary method.
Only the users provided with user name, Agent ID, Office ID, Organization and password
will be able to login and the authentication will be done by dedicated LSS Servers. Hence, it
provides a method of securing critical information that cant be unduly accessed by someone
unauthorized.
Report Scheduler:
One more feature that is provided in the application is very important for the payment critical
reports, where the user is given a chance to schedule a given report for future. The scheduling
report can be comprehended by understanding the fact that SAMOA provides a facility forBatch or Asynchronous processing of Reports.
Thus when a user dockets a particular report for a provided time interval i.e. daily or weekly.
The respective report for the corresponding criteria details is added to the wait queue for
processing. Whenever the processing is completed, the generated report is pushed to the NAS
folder corresponding to the logged in Office ID.
Meanwhile, after the lapse of the preset time interval, the user gets a notification that the
report requested has been generated and loaded to NAS. The notification when clicked
redirects the user to the application where he can view the contents of the freshly generated
report and also can view it graphically as per his wish, the way he wants to see the report
7/23/2019 Project Report Umang
33/99
Page 33 of 99
amadeus.com
2.4 Actors/Users Definition
The end user of the application will be the user of the application, the travel agents who will use
this application for reporting purposes, who will login into the application with LSS credentials.They will be able to save templates, retrieve templates, view submitted reports, schedule reports
and generate graphical representations of the submitted reports. They will get a timely
notification for the execution of the report if they have scheduled the report to be executed in
future. The notification will further redirect them to the freshly generated report and its
corresponding graph.
F igure 2.9: User defini tion for the Application
Mobile Application User
7/23/2019 Project Report Umang
34/99
Page 34 of 99
amadeus.com
CHAPTERIII
Work
7/23/2019 Project Report Umang
35/99
Page 35 of 99
amadeus.com
3.1 Walkthrough of the Application
This section presents a logical and the functional view of the Reporting Application developed.
3.1.1High Level Architecture of the Application
Following is the high level architecture of SAMOA (AIMO) Reporting (Ref. F igure 3.1):
F igure 3.1: Proposed SAMOA Reporting Production Archi tecture
3.1.2Logical View of the Application
The application flow that occurs while the operation of the mobile application is provided below:
Travel Agents login to SAMOA Reporting application using their LSS login credentials. Thecredentials are sent to the LSS Server in the back end through HTTP calls made via RESTful
Web Services which provide a bridge between the Android Interface (API) and the back end
server.
The report template that is saved by the user has its data pushed to the SQL Server Database
through Web Service calls.
7/23/2019 Project Report Umang
36/99
Page 36 of 99
amadeus.com
GUI accesses the generated reports from NAS for viewing at the client end in list or tabular
format.
The Dashboard contents are retrieved by the database and NAS interaction with the use of
logged in credentials
The Graphical View is generated with respect to the report data and charts are generated by
the use of Google Charts API.
3.1.3Logging in into the Application
The user logs into the application, by entering his credentials which include: User Name, Office
ID, Organization, Agent ID, and Password (Ref. F igure 3.2). These credentials are authenticated
by the LSS Server which runs in back end, the user is authenticated using the LSS authentication
mechanism.
If the credentials entered by the user are verified successfully by the server then a session ID is
generated and sent to the client side. If in case the credentials input by the user are anomalous
then an error message is generated. The login page also involves the null check mechanism, as
all the details are essential to be provided.
The credentials are stored in the database and can be fetched for future use if in case the user
opts for the option of Remember meor if he has forgotten the password.
So the main pointers regarding the login module can be stated as:
LSS Managed
All fields are mandatory
Authentication is necessary to enter into the application
After successful authentication, a Session ID is generated after which the user gets the access
to the application
The Dashboard further generated is intertwined with the Username and Office ID fields of
the Login Module, because they are interacting entities with the SQL Server and NAS.
7/23/2019 Project Report Umang
37/99
Page 37 of 99
amadeus.com
F igure 3.2: Screenshot of the Login Page of the Appli cation
3.1.4Dashboard Menu
When logged in, the user is redirected to Dashboard Menu (Ref. F igure 3.3(b)).The dashboard
consists of all the past activity of the user with respect to the reports generated by the user in
past. The dashboard fetched its contents with the use of office ID and User Name because in
NAS, the reports are by default saved with an extension of office ID and User Name. Thus, the
contents of the dashboard are fetched by the interaction between NAS and SQL Server Database.
The dashboard also presents an option to see the reports template criteria which can be seen on
clicking the report name. (Ref. F igure 3.3 (b)) When the user clicks on the View Report
option, further user is pushed to another window where he is presented two options either to
view the report in data format or graphical (Chart) format.
The dashboard is dynamic in nature. It will refresh itself every time the user logs in to the
application. The family option for the report represents the type of the report that has been
executed by the user in the past.
7/23/2019 Project Report Umang
38/99
Page 38 of 99
amadeus.com
F igure 3.3 (a): Screenshot of Dashboard Menu
F igure 3.3 (b): Screenshot of the template page for any report
7/23/2019 Project Report Umang
39/99
Page 39 of 99
amadeus.com
3.1.5 Template Generation for Reports
The application provides a feature to create templates for future use for the 3 reports namely:
Top 10 Destinations Report, Turnover Report and Emergency Report.
3.1.5.1 Input Criteria
The criteria details that are used for the execution of these reports are mentioned below:
[1]Top 10 Destinations Report:
The Top10 Destinations Report Template creation can be instantiated from the Top10
Destinations Report criteria page (Standard Report Type) or any of the existing Templates
(Standard Report Templates). The Top10 Destinations report would have the following inputcriteria for Template Creation.
Sr. No Input Criteria Business NeedMandatory /
OptionalDefined Value
1Standard Report Type
This determines the standard
Query/XML structure and the
output that would be generated
M (Auto-populated
based on selection)
Ex: Top 10
Destinations
2 Name
To be able to provide a name
to the Standard Report
Template
Mandatory
Ex: Top 10
Destinations in
France
3 Start Date RangeTo specify the Booking Folder
Start date range (user- defined)
** M (Pre-
populated with the
current system date)
Ex: 27/03/2013
27/04/2013
4 End Date RangeTo specify the Booking Folder
End date range (user- defined)** M
Ex: 27/03/2013
27/04/2013
5 Office
Currently Login Office id.
System defaulted value. Blank
value is not allowed.
M (Pre-populated
with the Login
office id)
Ex: STO1A2200
6Country
(All or List)
List the Top 10 destination
Countries or Top 10 cities in a
Country in the report
Mandatory Ex: All
Table 3.1: I nput Cr iteri a for Top 10 Destinations Report
Cri ter ia Rules and Restr ictions
It is essential to define values for the mandatory fields at the minimum.
7/23/2019 Project Report Umang
40/99
Page 40 of 99
amadeus.com
[2]Turnover Report:
The Turnover Report Template creation can be instantiated from the Turnover Report criteria
page (Standard Report Type) or any of the existing Templates (Standard Report Templates). The
Turnover report would have the following input criteria for Template Creation.
Sr. No Input Criteria Business NeedMandatory /
OptionalDefined Value
1Standard Report Type
This determines the
standard Query/XML
structure and the output
that would be generated
M (Auto-
populated
based on
selection)
Ex: Turnover Report
2 Name
To be able to provide a
name to the StandardReport Template
Mandatory Ex: sample1
3 Start Date Range
To specify the Booking
Folder Start date range
(user- defined)
** M (Pre-
populated with
the current
system date)
Ex: 27/03/201327/04/2013
4 End Date Range
To specify the Booking
Folder End date range
(user- defined)
** M Ex: 27/03/201327/04/2013
5 Office ID
Currently Login Office id.
System defaulted value.
Blank value is not
allowed.
M (Pre-
populated with
the Login
office id)
Ex: STO1A2200
6 Agent
Agent ID for which
Booking Folder is to be
accessed
Mandatory Ex: ANR2015
Table 3.2: I nput Cr iteria for Tur nover Report
Cri ter ia Rules and Restr ictionsIt is essential to define values for the mandatory fields at the minimum.
7/23/2019 Project Report Umang
41/99
Page 41 of 99
amadeus.com
[3]Emergency Report:
The Emergency Report Template creation can be instantiated from the Emergency Report criteria page
(Standard Report Type) or any of the existing Templates (Standard Report Templates). The Emergency
report would have the following input criteria for Template Creation.
Sr. No. Input Criteria Business NeedMandatory
/ OptionalDefined Value
1Standard Report Type
This determines the
standard Query/XML
structure and the output that
would be generated
M (Auto-
populated
based on
selection)
Ex: Emergency Report
2 Name
To be able to provide a
name to the Standard Report
Template
Mandatory Ex: Report_Umang
3 Start Date Range
To specify the Booking
Folder Start date range
(user- defined)
** M (Pre-
populated
with the
current
system date)
Ex: 27/03/201327/04/2013
4 End Date Range
To specify the Booking
Folder End date range
(user- defined)
** M Ex: 27/03/201327/04/2013
5 Office
Currently Login Office id.
System defaulted value.
Blank value is not allowed.
M (Pre-
populated
with the
Login office
id)
Ex: STO1A2200
6 IATA CodeIATA Code of any Airport,
City or CountryMandatory Ex: PARParis
Table 3.3: Input Cr iteri a for Emergency Report
Cri ter ia Rules and Restr ictions
It is essential to define values for the mandatory fields at the minimum.
7/23/2019 Project Report Umang
42/99
Page 42 of 99
amadeus.com
3.1.5.2 Process
The web service call to the database is invoked when the user decides to create a Template. The
data for the criteria is pushed into the respective tables in the database.
The values defined for the criteria are validated as per validations. On successful validation the
Template is created.
3.1.5.3 Output
The Report Template is created and is available for use in the Dashboard panel. A new Template
is created when the user performs Save or Save & Submit action on the criteria page of the
corresponding report
F igure 3.4: Screenshot of Save Report page for Top 10 Destinati ons Report
7/23/2019 Project Report Umang
43/99
Page 43 of 99
amadeus.com
3.1.6Graphical Dashboard
The graphs (Ref. F igure 3.5 (c)), map views (Ref. F igure 3.5 (b))and charts (Ref. F igure 3.5
(a))for a particular report can be seen by the user when he views a report where he is provided achoice to view a particular report graphically or pictorially.
The graphs for a particular report are generated by directly parsing the CSV generated for that
particular report in the NAS and then generating a chart for that be adding Java Script Interface
in Android with the help of Google Charts API.
The user can zoom in or zoom out the charts or graphs, he is also provided an option to
download a jpg image of the generated chart, which he can use for further quoting purposes.
Other than this, the user can also paginate through the graph and see the details or the legend
values based on which the graph has been drawn. The legends are though provided separately too
for the sake of convenience.
F igure 3.5 (a) F igure 3.5 (b)
F igure 3.5 (a): Pie Chart generated for Top 10 Destinations Report
F igure 3.5 (b): M ap based View generated for Top 10 Destinations Report
7/23/2019 Project Report Umang
44/99
Page 44 of 99
amadeus.com
F igure 3.5 (c): Graphi cal View generated for Emergency Report
3.1.7Scheduling Notifications
The user can schedule the notifications to be notified of the reports (Ref. F igure 3.6 (a))that are
generated in future or for the reports that need to be viewed periodically. The notification
scheduler is synced with the Alarm Manager, which will generate an alarm at the lapse of the
pre-defined time quanta. The reporting app provides two options: either to schedule every day or
after a week. The user will get a badge of the notification in his devices Notification Panel (Ref.
F igure 3.6 (b)).
The scheduling option comes when the user is about to save a report template, if the user
proposes the reports to be scheduled then, he selects the button and he moves to the scheduling
window.
1
2
4
1
2
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
6/20/2015 6/21/2015 6/22/2015 6/23/2015 6/24/2015
NumberofPassengersdeparting
Date
Emergency Report
7/23/2019 Project Report Umang
45/99
Page 45 of 99
amadeus.com
The reports which are then generated in the NAS at the defined time interval will be then
retrieved from the NAS and their presence is also reflected in the dashboard panel as well. The
user then can view the newly generated report and also its contents on a periodic basis of time.
F igure 3.6 (a) F igure 3.6 (b)
F igure 3.6 (a): Scheduler Page for any Report
F igure 3.6 (b): Sample Notif ication in Notifi cation Bar f or Top 10 Destinations Report
3.2 Tools and Technologies Used
3.2.1Technologies Used
3.2.1.1
Android App Development
Android software development is the process by which new applications are created for theAndroid operating system. Applications are usually developed in Java programming language
using the Android software development kit (SDK), but other development environments are
also available.
7/23/2019 Project Report Umang
46/99
Page 46 of 99
amadeus.com
3.2.1.1.1 Android
Android (Ref. F igure 3.7)is an operating system based on the Linux kernel with a user interface
developed by Google (Ref. Figure 3.8), primarily for touchscreen mobile devices such
as smartphones and tablet computers.
The Android OS was originally created by Android, Inc., which was bought by Google in 2005.
Google teamed up with other companies to form the Open Handset Alliance (OHA), which is
responsible for the continued development of the Android OS.
F igure 3.7: Android Logo
F igure 3.8: Android 5.0 Home Screen
7/23/2019 Project Report Umang
47/99
Page 47 of 99
amadeus.com
Android Open Source Project
Android is an open-source software stack for a wide range of mobile devices and a
corresponding open-source project led by Google. Here you can find the information and source
code you need to learn more about the Android platform. From there you can create custom
variants of the Android software stack, port devices and accessories to the Android platform, and
ensure your devices are compatible with the Android compatibility definition.
Android delivers a complete set of software for mobile devices: an operating system, middleware
and key mobile applications.
Open
Android was built from the ground-up to enable developers to create compelling mobile
applications that take full advantage of all a handset has to offer. It was built to be truly open.
For example, an application can call upon any of the phones core functionality such as making
calls, sending text messages, or using the camera, allowing developers to create richer and more
cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it
utilizes a custom virtual machine that was designed to optimize memory and hardware resources
in a mobile environment. Android is open source; it can be liberally extended to incorporate new
cutting edge technologies as they emerge. The platform will continue to evolve as the developer
community works together to build innovative mobile applications.
All Applications are created equal
Android does not differentiate between the phones core applications and third-party
applications. They can all be built to have equal access to a phones capabilities providing users
with a broad spectrum of applications and services. With devices built on the Android Platform,
users are able to fully tailor the phone to their interests. They can swap out the phone's home
screen, the style of the dialer, or any of the applications. They can even instruct their phones to
use their favorite photo viewing application to handle the viewing of all photos.
7/23/2019 Project Report Umang
48/99
Page 48 of 99
amadeus.com
Breaking down application boundaries
Android breaks down the barriers to building new and innovative applications. For example, a
developer can combine information from the web with data on an individuals mobile phone such as the users contacts, calendar, or geographic location to provide a more relevant user
experience. With Android, a developer can build an application that enables users to view the
location of their friends and be alerted when they are in the vicinity giving them a chance to
connect.
Fast & easy application development
Android provides access to a wide range of useful libraries and tools that can be used to build
rich applications. For example, Android enables developers to obtain the location of the device,
and allows devices to communicate with one another enabling rich peertopeer social
applications. In addition, Android includes a full set of tools that have been built from the ground
up alongside the platform providing developers with high productivity and deep insight into their
applications.
3.2.1.1.2 Development Process
Developing Android applications is a pleasant and rewarding endeavor. To convert ideas into
products we use ADT (Android Development Toolkit), the form of Eclipse integrated
development environment (IDE) used to develop android applications. With ADT ne can
organize and edit source files, view documentation, build application, debug code and optimize
applicationsperformance.
3.2.1.1.3 Android Applications
Android applications are usually developed in the Java language using the Android SoftwareDevelopment Kit. Once developed, Android applications can be packaged easily and sold out
either through a store such as GooglePlay or the Amazon Appstore.
Android powers hundreds of millions of mobile devices in more than 190 countries around the
world. It's the largest installed base of any mobile platform and growing fast. Every day more
than 1 million new Android devices are activated worldwide.
7/23/2019 Project Report Umang
49/99
Page 49 of 99
amadeus.com
3.2.1.1.4 Scope of the Android Application Development
The Android is a series of advanced multimedia and Internet-enabled Smartphones, developed
by the leading Blue-chip companies that are part of OHA (Open Handset Alliance) like
Samsung, Motorola, HTC, Dell, HP, Sony, ZTE, Micromax, etc with endless opportunities in
future as the base operating system is advancing day by day and these different vendors that
ships android OS on their hardware are eager to develop more and more apps that can distinguish
them in the global market. Along with that the developers can always develop standard
applications to access features of android as Android has a great set of features, which include
digital camera, visual voicemail, Internet client, web browsing, email, text messaging, 3G and
Wi-Fi connectivity, media player, touchscreen, etc.
3.2.1.1.5 Application Fundamentals
Android apps are written in the Java programming language. The Android SDK tools compile
your codealong with any data and resource filesinto an APK: an Android package, which is
an archive file with an .apksuffix. One APK file contains all the contents of an Android app and
is the file that Android-powered devices use to install the app.
Once installed on a device, each Android app lives in its own security sandbox:
The Android operating system is a multi-user Linux system in which each app is a different
user.
By default, the system assigns each app a unique Linux user ID (the ID is used only by the
system and is unknown to the app). The system sets permissions for all the files in an app so
that only the user ID assigned to that app can access them.
Each process has its own virtual machine (VM), so an app's code runs in isolation from otherapps.
By default, every app runs in its own Linux process. Android starts the process when any of
the app's components need to be executed, then shuts down the process when it's no longer
needed or when the system must recover memory for other apps.
7/23/2019 Project Report Umang
50/99
Page 50 of 99
amadeus.com
In this way, the Android system implements theprinciple of least privilege. That is, each app, by
default, has access only to the components that it requires to do its work and no more. This
creates a very secure environment in which an app cannot access parts of the system for which it
is not given permission.
However, there are ways for an app to share data with other apps and for an app to access system
services:
It's possible to arrange for two apps to share the same Linux user ID, in which case they are
able to access each other's files. To conserve system resources, apps with the same user ID
can also arrange to run in the same Linux process and share the same VM (the apps must also
be signed with the same certificate).
An app can request permission to access device data such as the user's contacts, SMS
messages, the mountable storage (SD card), camera, Bluetooth, and more. All app
permissions must be granted by the user at install time.
3.2.1.1.6
Application Workflow
The basic steps for developing applications (with or without Android Studio) are shown inFigure 3.9 (Ref. F igure 3.9).The development steps encompass four development phases, which
include:
Environment Setup
During this phase we install and set up your development environment. We also create Android
Virtual Devices (AVDs) and connect hardware devices on which we can install our applications.
Project Setup and Development
During this phase we set up and develop our Android Studio project and application modules,which contain all of the source code and resource files for our application.
Building, Debugging and Testing
During this phase we build our project into a debuggable .apkpackage(s) that we can install and
run on the emulator or an Android-powered device. Android Studio uses a build system based on
Gradle that provides flexibility, customized build variants, dependency resolution, and much
7/23/2019 Project Report Umang
51/99
Page 51 of 99
amadeus.com
more. If we are using another IDE, we can build our project using Gradle and install it on a
device using adb.
Next, with Android Studio we debug our application using the Android Device Monitor and
device log messages (logcat) along with the IntelliJ IDEA intelligent coding features.
Last, we test our application using various Android SDK testing tools.
Publishing
During this phase we configure and build our application for release and distribute our
application to users.
F igure 3.9: The development process for Android applications
7/23/2019 Project Report Umang
52/99
Page 52 of 99
amadeus.com
3.2.1.1.7 App Components
App components are the essential building blocks of an Android app. Each component is a
different point through which the system can enter your app. Not all components are actual entry
points for the user and some depend on each other, but each one exists as its own entity and plays
a specific roleeach one is a unique building block that helps define your app's overall
behavior.
There are four different types of app components. Each type serves a distinct purpose and has a
distinct lifecycle that defines how the component is created and destroyed. Here are the four
types of app components:
Activities
An activity represents a single screen with a user interface. For example, an email app might
have one activity that shows a list of new emails, another activity to compose an email, and
another activity for reading emails. Although the activities work together to form a cohesive user
experience in the email app, each one is independent of the others. As such, a different app can
start any one of these activities (if the email app allows it). For example, a camera app can start
the activity in the email app that composes new mail, in order for the user to share a picture.
An activity is implemented as a subclass of Activity.
Services
A serviceis a component that runs in the background to perform long-running operations or to
perform work for remote processes. A service does not provide a user interface. For example, a
service might play music in the background while the user is in a different app, or it might fetch
data over the network without blocking user interaction with an activity. Another component,
such as an activity, can start the service and let it run or bind to it in order to interact with it.
A service is implemented as a subclass ofService.
https://developer.android.com/reference/android/app/Service.htmlhttps://developer.android.com/reference/android/app/Service.html7/23/2019 Project Report Umang
53/99
Page 53 of 99
amadeus.com
Content providers
A content providermanages a shared set of app data. You can store the data in the file system, an
SQLite database, on the web, or any other persistent storage location your app can access.
Through the content provider, other apps can query or even modify the data (if the content
provider allows it). For example, the Android system provides a content provider that manages
the user's contact information. As such, any app with the proper permissions can query part of
the content provider (such as ContactsContract.Data) to read and write information about a
particular person.
A content provider is implemented as a subclass of ContentProvider and must implement a
standard set of APIs that enable other apps to perform transactions.
Broadcast receivers
A broadcast receiver is a component that responds to system-wide broadcast announcements.
Many broadcasts originate from the systemfor example, a broadcast announcing that the
screen has turned off, the battery is low, or a picture was captured. Apps can also initiate
broadcastsfor example, to let other apps know that some data has been downloaded to the
device and is available for them to use. Although broadcast receivers don't display a userinterface, they may create a status bar notification to alert the user when a broadcast event
occurs. More commonly, though, a broadcast receiver is just a "gateway" to other components
and is intended to do a very minimal amount of work.
A broadcast receiver is implemented as a subclass of BroadcastReceiver and each broadcast is
delivered as anIntent object.
3.2.1.2
RESTful Web Services
REST describes a set of architectural principles by which data can be transmitted over a
standardized interface (such as HTTP). The acronym REST stands for Representational State
Transfer, this basically means that each unique URL is a representation of some object.
https://developer.android.com/reference/android/provider/ContactsContract.Data.htmlhttps://developer.android.com/reference/android/content/ContentProvider.htmlhttps://developer.android.com/guide/topics/ui/notifiers/notifications.htmlhttps://developer.android.com/reference/android/content/Intent.htmlhttps://developer.android.com/reference/android/content/Intent.htmlhttps://developer.android.com/guide/topics/ui/notifiers/notifications.htmlhttps://developer.android.com/reference/android/content/ContentProvider.htmlhttps://developer.android.com/reference/android/provider/ContactsContract.Data.html7/23/2019 Project Report Umang
54/99
Page 54 of 99
amadeus.com
REST asks developers to use HTTP methods explicitly and in way thats consistent with protocol
definition. This basic REST design principle establishes a one-to-one mapping between create,
read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:
To create a resource on the server, use POST.
To retrieve a resource, use GET.
To change the state of a resource or to update it, use PUT.
To remove or delete a resource, use DELETE.
3.2.1.2.1 Request methods
GET
The GET method requests a representation of the specified resource. Requests using GET should
only retrieve data and should have no other effect. (This is also true of some other HTTP
methods.) The W3C has published guidance principles on this distinction, saying, "Web
application design should be informed by the above principles, but also by relevant limitations.
POST
The POST method requests that the server accept the entity enclosed in the request as a new
subordinate of the web resource identified by the URI. The data POSTed might be, for example,
an annotation for existing resources; a message for a bulletin board, mailing list, or comment
thread; a block of data that is the result of submitting a web form to a data-handling process; or
an item to add to a database.
PUT
The PUT method requests that the enclosed entity be stored under the supplied URI. If the URIrefers to an already existing resource, it is modified; if the URI does not point to an existing
resource, then the server can create the resource with that URI.
DELETE
The DELETE method deletes the specified resource.
7/23/2019 Project Report Umang
55/99
Page 55 of 99
amadeus.com
3.2.1.2.2 RESTful Web Services in Android
RESTful Web services are well suited for providing content to small footprint devices like
smartphones and tablets. In fact, if you've interacted with any cloud-based APIs in the last couple
of years, there is a strong chance that API was exposed via a REST interface. Calling a REST
endpoint from within an Android application requires pushing an HTTP request to the
background thread and then parsing the results on the UI thread.
3.2.1.2.3 HTTP Annotations
Annotations are like meta-tags that you can add to the code and apply to package declarations,
type declarations, constructors, methods, fields, parameters, and variables. They provide helpful
ways to indicate whether the methods are dependent on other methods, whether they are
incomplete, whether the classes have references to other classes, and so on.
Annotation Description
@PATH(your_path)
Sets the path to base URL + /your_path. The base
URL is based on your application name, the servlet
and the URL pattern from web.xml configuration file.
@POSTIndicates that the following method will answer to an
HTTP POST request.@GET
Indicates that the following method will answer to an
HTTP GET request.
@PUTIndicates that the following method will answer to an
HTTP PUT request.
@DELETEIndicates that the following method will answer to an
HTTP DELETE request.
@Produces(MediaType.TEXT_PLAIN[,more-types])
@Produces defines which MIME type is delivered by
a method annotated with @GET. In the example text(text/plain) is produced. Other examples would be
application/xml or application/json.
@Consumes(type[, more-types])@Consumes defines which MIME type is consumed
by this method.
@Path PARAM
Used to inject values from the URL into a method
parameter. This way you inject, for example, the ID of
a resource into the method to get the correct object.
Table 3.4: REST Annotations
7/23/2019 Project Report Umang
56/99
Page 56 of 99
amadeus.com
3.2.2Tools Utilized
3.2.2.1 Eclipse
Eclipse Java EEwas used as an IDE for the development of the mobile application throughout
the timeline of the project. Preferring Eclipse over Android Studio was due to the fact that
Eclipse is more convenient to use and development in Java EE perspective offers a dual
advantage of server end development together only as the application involved a great deal of
interaction with the back end servers.
3.2.2.1.1 Introduction
In computer programming, Eclipseis an integrated development environment (IDE). It contains
a base workspace and an extensible plug-in system for customizing the environment. Written
mostly in Java, Eclipse can be used to develop applications.
By means of various plug-ins, Eclipse may also be used to develop applications in other
programming languages: Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso,
Lua, Natural, Perl, PHP, Prolog, Python, R, Ruby (including Ruby on Rails framework), Scala,
Clojure, Groovy, Scheme, and Erlang. It can also be used to develop packages for the software
Mathematica. Development environments include the Eclipse Java development tools (JDT) for
Java and Scala, Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others.
F igure 3.10: Screenshot of Eclipse Luna with ADT Plugin
7/23/2019 Project Report Umang
57/99
Page 57 of 99
amadeus.com
3.2.2.1.2 Eclipse Installation
Installing Eclipse is relatively easy, but does involve a few steps and software from at least two
different sources. Eclipse is a Java-based application and, as such, requires a Java runtime
environment (JRE) in order to run.
Install a JVM
Regardless of your operating system, you will need to install some Java virtual machine (JVM).
You may either install a Java Runtime Environment (JRE), or a Java Development Kit (JDK),
depending on what you want to do with Eclipse. If you intend to use Eclipse for Java
development, then you should install a JDK (the JDK includes--among other useful things--the
source code for the standard Java libraries). If you aren't planning to use Eclipse for Java
development and want to save some disk space, install a JRE.
The download will be delivered as a compressed (i.e. a ".zip", or ".tar.gz") file. Decompress this
file into the directory of your choice (e.g. "c:\Program Files\Eclipse" on Windows). We can
optionally create a shortcut of the executable file ("eclipse.exe" on Windows, or "eclipse" on
Linux).Expand the ZIP file into the root of your hard drive.
When done, if hard drive root is the C:\ drive then we will have the following folder on the hard
drive:
F igure 3.11 Eclipse Installation
Now, start Eclipse and update the Installed JREs
7/23/2019 Project Report Umang
58/99
Page 58 of 99
amadeus.com
3.2.2.2 Android SDK
The Android software development kit (SDK) includes a comprehensive set of development
tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation,
sample code, and tutorials. Currently supported development platforms include computers
running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, and Windows
XP or later. As of March 2015, the SDK is not available on Android itself, but the software
development is possible by using specialized Android applications.
Until around the end of 2014, the officially supported integrated development environment (IDE)
was Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all
editions) fully supports Android development out of the box, and Net Beans IDE also supports
Android development via a plugin. As of 2015, Android Studio, made by Google and powered
by IntelliJ, is the official IDE; however, developers are free to use others. Additionally,
developers may use any text editor to edit Java and XML files, then use command line tools
(Java Development Kit and Apache Ant are required) to create, build and debug Android
applications as well as control attached Android devices (e.g., triggering a reboot, installing
software package(s) remotely).
Enhancements to Android's SDK go hand in hand with the overall Android platformdevelopment. The SDK also supports older versions of the Android platform in case developers
wish to target their applications at older devices. Development tools are downloadable
components, so after one has downloaded the latest version and platform, older platforms and
tools can also be downloaded for compatibility testing.
Android applications are packaged in .apk format and stored under /data/app folder on the
Android OS (the folder is accessible only to the root user for security reasons). APK package
contains .dex files (compiled byte code files called Dalvik executables), resource files, etc.
3.2.2.3 Android Development in Eclipse: ADT Plugin
Android Development Tools (ADT) is a Google-provided plugin for the Eclipse IDE that is
designed to provide an integrated environment in which to build Android applications. ADT
extends the capabilities of Eclipse to let developers set up new Android projects, create an
7/23/2019 Project Report Umang
59/99
Page 59 of 99
amadeus.com
application UI, add packages based on the Android Framework API, debug their applications
using the Android SDK tools, and export signed (or unsigned) .apk files in order to distribute
their applications.
One should install the ADT plugin only if one already have an Eclipse installation that one want
to continue using. The existing Eclipse installation must meet these requirements:
Eclipse 3.7.2 (Indigo) or greater. Eclipse 3.6 (Helios) is no longer supported with the latest
version of ADT.
Eclipse JDT plugin (included in most Eclipse IDE packages)
JDK 6 (JRE alone is not sufficient)
3.2.2.3.1 SDK Tools Integration
Many of the tools that can start or run from the command line are integrated into ADT. They
include:
Traceview: Allows to profile program's execution (Window > Open Perspective >
Traceview).
android: Provides access to the Android SDK Manager and AVD Manager.
Other androidfeatures such as creating or updating projects (application and library) are
integrated throughout the Eclipse IDE.
Hierarchy Viewer: Allows to visualize application's view hierarchy to find inefficiencies
(Window > Open Perspective > Hierarchy Viewer).
Pixel Perfect:Allows to closely examine UI to help with designing and building. (Window >
Open Perspective > Pixel Perfect).
DDMS: Provides debugging features including: screen capturing, thread and heap
information, and logcat (Window > Open Perspective > DDMS).
7/23/2019 Project Report Umang
60/99
Page 60 of 99
amadeus.com
adb: Provides access to a device from the development system. Some features of adbare
integrated into ADT such as project installation (Eclipse run menu), file transfer, device
enumeration, and logcat (DDMS).
ProGuard:Allows code obfuscation, shrinking, and optimization. ADT integrates ProGuard
as part of the build, if enabled.
3.2.2.3.2 Code Editors
In addition to Eclipse's standard editor features, ADT provides custom XML editors to help
create and edit Android manifests, resources, menus, and layouts in a form-based or graphical
mode. Double-clicking on an XML file in Eclipse's package explorer opens the appropriate XML
editor.
In addition, some special file types that don't have custom editors, such as drawables,
animations, and color files offer editing enhancements such as XML tag completion. ADT
provides the following custom, form-based XML editors:
Graphical Layout Editor
Edit and design your XML layout files with a drag and drop interface. The layout editor renders
interface as well, offering a preview as we design your layouts. This editor is invoked when we
open an XML file with a view declared (usually declared in res/layout.
7/23/2019 Project Report Umang
61/99
Page 61 of 99
amadeus.com
F igure 3.12: View of a Graphical Layout Editor
Android Manifest Editor
Edit Android manifests with a simple graphical interface. This editor is invoked when we open
anAndroidManifest.xmlfile.
Menu Editor
Edit menu groups and items with a simple graphical interface. This editor is invoked when we
open an XML file with a declared (usually located in the res/menufolder).
Resources Editor
Edit resources with a simple graphical interface. This editor is invoked when we open an XML
file with atag declared.
XML Resources Editor
Edit XML resources with a simple graphical interface. This editor is invoked when we open an
XML file.
7/23/2019 Project Report Umang
62/99
Page 62 of 99
amadeus.com
3.2.2.4 Apache Tomcat Server
Apache Tomcat, often referred to as Tomcat, is an open-source web server and servlet
container developed by the Apache Software Foundation (ASF). Tomcat implements several
Java EE specifications including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket,
and provides a "pure Java" HTTP web server environment for Java code to run in.
Tomcat is developed and maintained by an open community of developers under the auspices of
the Apache Software Foundation, released under the Apache License 2.0 license, and is open-
source software.
In web development, Apache HTTP server is used in order to provide the backbone of multiple
websites by processing the requests of the clients. While the HTTP server delivers the webpages
to the end user, Tomcat is the tool that provides servlet support in order to add dynamic content
to the server.
If we are creating a website that also includes Java code and applets, this application can help the
web server run them instead of running in the users Internet browser. This greatly improves the
reliability of the application and the response time for the end user.
F igure 3.13 Apache Tomcat Server L ogo
7/23/2019 Project Report Umang
63/99
Page 63 of 99
amadeus.com
3.2.2.5 Microsoft SQL Server
Microsoft SQL Serveris a relational database management system developed by Microsoft. As
a database server, it is a software product with the primary function of storing and retrieving data
as requested by other software applications which may run either on the same computer or on
another computer across a network
Microsoft markets different editions of Microsoft SQL Server, aimed at different audiences and
for workloads ranging from small applications to large internet facing applications with many
concurrent users.
The interaction between the client side interface and the back end Database Server happens
through the web services. The Android API interacts with the web application developed in the
J2EE Environment through Restful Web Service Calls, which in turns hits the DB Server
through Web Service Calls. Hence through the queries framed in the corresponding
programming languages help to interact the front end with the back end. The figure given below
illustrates the same procedure only. (Ref. Figure 3.14)
F igure 3.14: Cli ent Side Interface in teract wi th the Database Server
7/23/2019 Project Report Umang
64/99
Page 64 of 99
amadeus.com
3.2.2.6 Google Charts API
The Google Chart APIis a tool that helps to create a chart from some data and embed it in a
web page. Google creates a PNG image of a chart from data and formatting parameters in an
HTTP request. Many types of charts are supported, and by making the request into an image tag,
people can simply include the chart in a web page.
Originally it was an internal tool to support rapid embedding of charts within Google's own
applications (like Google Finance for example). Google figured it would be a useful t