Project Report Umang

download Project Report Umang

of 99

Transcript of Project Report Umang

  • 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.html
  • 7/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.html
  • 7/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