A Customizable Travel Application- Travel-It

Similar documents
INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg.

Android Application Development using Kotlin

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

SHWETANK KUMAR GUPTA Only For Education Purpose

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

ATC Android Application Development

ANDROID SYLLABUS. Advanced Android

Android Overview. Most of the material in this section comes from

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise

IJRDTM Kailash ISBN No Vol.17 Issue

Introduction To Android

Android App Development

Introduction to Android

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Minds-on: Android. Session 1

A STUDY OF ANDROID OPERATING SYSTEM WITH RESPECT WITH USERS SATISFACTION

Porting mobile web application engine to the Android platform

Android Overview. Francesco Mercaldo, PhD

Mobile based Text Image Translation System for Smart Tourism. Saw Zay Maung Maung UCSY, Myanmar. 23 November 2017, Brunei

Android App Development

Research on Improving performance and Battery Backup of Android Mobile with help of Cyanogen Mod, and latest kernel

Android App Development. Ahmad Tayeb

ANDROID DEVELOPMENT. Course Details

YOUR COMMUNITY WITH NABR NETWORK

BeetleEye Application User Documentation

Android Essentials with Java

Mobile and Ubiquitous Computing: Android Programming (part 1)

Printing from anywhere to Thousand Oaks Library s printers

ISDS 3100 Spring 2012 Idea Name: Hungry Tigers Application Team Name: Team Cuisine March 26, 2012

Android OS. Operating System based on Linux [ ] [Jonas Teuscher, Alex Cuordileone, Cédric Glaus]

Chapter 2 Setting Up for Development

GUJARAT TECHNOLOGICAL UNIVERSITY

b. Price: $ Translate Voice Free a. Link to description: ?mt=8 b.

Mobile Application Development

Android Software Development Kit (Part I)

v9 Quick Start Guide

Introduction to Mobile Application and Development

CS260 Intro to Java & Android 04.Android Intro

WELCOME Mobile Applications Testing. Copyright

Pemrograman Mobile. Lesson 1. Introduction to Android. Create Your First Android App. Nizar Rabbi Radliya

Android Application Development Course Code: AND-401 Version 7 Duration: 05 days

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

MOBILE TECHNOLOGY MICROSOFT TECHNOLOGY MOBILE TECHNOLOGY OPENSOURCE TECHNOLOGY. iphone. Android.

File Synchronization using API Google Drive on Android Operating System

CSCU9YH Development with Android

Android Application Development

Real-Time Embedded Systems

Early-Enact. OPUS Open Portal to University Scholarship. Governors State University. Shiva Sai Kumar Gaday Governors State University

Oracle Mobile Application Framework

Android Basics Nanodegree Syllabus

(Refer Slide Time: 0:48)

Abstract. 1. Introduction

Polarion Trial Installation 17.2

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Mobile Programming Lecture 1. Getting Started

Android Development Tutorial. Yi Huang

MERIDIAN MOBILE APP PLATFORM

NTS A NAVIGATION TRACKER SYSTEM

SD Module- Android Programming

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

EMPLOYEE LOCATION TRACKING SERVICE

(Refer Slide Time: 1:12)

Android Development Crash Course

Android" Application Development SAMS. Sams Teach Yourself. Shane Conder. Lauren Darcey. Second Edition

Mobile Services Part 1

California Polytechnic University San Luis Obispo. CSC Senior Project. Formal Report. Ciceroni ios App

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

EventCenter Training SEPTEMBER CrowdCompass 2505 SE 11 th Ave, Suite #300 Portland, OR

Design and Development of a Dynamic Portal Travel Guide for the City of Florina Concerning Smart Portable Devices

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

ANDROID TRAINING PROGRAM COURSE CONTENT

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

Design and Implementation a Virtualization Platform for Providing Smart Tourism Services

Meridian-powered mobile apps work on both ios and Android devices.

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Project Covered During Training: Real Time Project Training

Frequently Asked Questions

Using Track Kit App for Lyme Preserves Trail Report

Android App Development Workshop

PROCE55 Mobile: Web API App. Web API.

Introduction to Xamarin Cross Platform Mobile App Development

IEMS 5722 Mobile Network Programming and Distributed Server Architecture

Introduction Augmented reality Map POIs list POI form Settings Information Appendix...

Java Training Center - Android Application Development

Get the Yale Events App for Commencement!

Tourism Guide for Tamilnadu (Android Application)

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu

Android Developer Nanodegree Syllabus

Syllabus- Java + Android. Java Fundamentals

Required Core Java for Android application development

Tom Brenneman. Good morning and welcome, introductions and thank you for being here.

Location Based Task Reminder System Using Android Mobile

WorksPad. User Guide

My Favorite Android Apps. Bill James, Vice President Oklahoma City Computer Club

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

Mobile Internet Devices and the Cloud

Transcription:

A Customizable Travel Application- Travel-It GRADUATE PROJECT Submitted to the Faculty of the Department of Computing Sciences Texas A&M University-Corpus Christi Corpus Christi, Texas In Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science By Kankipati Laxmi Trijani Spring 2017 Committee Members Dr. Ahmed Mahdy Committee Chairperson Dr. David Thomas Committee Member

ii ABSTRACT Modern hand held devices like smart phones and tablets have become increasingly powerful in recent years. This project projects the development of a customizable travel application designed for Android devices. The prime objective of this application is to provide travelers with itineraries based on the individual s choice. The users can customize their search for places to visit by giving their choice of preferences. The selected places of visit in any particular city can be viewed on Google maps. Integrating maps makes this android application more useful for the users, as it provides an estimate of distance between places selected. The intended features in this application are: Allowing search for places to visit (city name or any valid address of a location). Providing customizable search options based on the user s preferences (e.g. restaurants -Italian restaurants, attractions - museums, beaches). Providing customizable radius options to find list of museums, zoos at particular distance from the place entered by the user. Enabling notifications about the trip. Providing an itinerary for the entire trip and allowing options to: Save the itinerary. Share via email.

iii TABLE OF CONTENTS ABSTRACT...ii TABLE OF CONTENTS... iii LIST OF FIGURES... v LIST OF TABLES... vii 1. BACKGROUND AND RATIONALE... 1 1.1 Introduction... 1 1.2 Android... 2 1.3 Android Studio... 4 1.4 Existing Systems... 5 2. NARRATIVE... 6 2.1 Problem Statement... 6 2.2 Motivation... 6 2.3 Product Scope... 7 2.4 Functionalities... 7 2.5 System Requirements... 7 3. DEVELOPED SYSTEM DESIGN... 8 3.1 Module Description... 8 3.2 Use Case Diagrams...10 3.3 Design Flow...12 3.4 User Interfaces...13 4. IMPLEMENTATION OF APPLICATION MODULES...24

iv 4.1 XML code for Android Permissions...24 4.2 Place Planner Activity...24 4.3 Day Planner Activity...25 5. TESTING AND EVALUATION...27 5.1 Test Case Scenarios...27 5.2 Other Miscellaneous Cases...33 5.3 User Evaluations Report...34 6. CONCLUSION AND FUTURE WORK...35 6.1 Conclusion...35 6.2 Future Work...35 7. BIBLIOGRAPHY...36 Appendix A: Code Snippets...37

v LIST OF FIGURES Figure 1. Graph showing percentage of different mobiles OS in the market... 2 Figure 3.1 Architecture of Travel-It Application... 8 Figure 3.1.7. Activity Diagram for Server connection and Data Retrieval...10 Figure 3.2. Use Case Diagram of Travel-It Application...11 Figure 3.3 Design Flow Diagram for Travel-It Application...12 Figure 3.4.1 Main Screen...13 Figure 3.4.1.1 Validation Error...13 Figure 3.4.1.2 Main Screen with details...14 Figure 3.4.1.3 Calendar for setting date...14 Figure 3.4.2 Place Planner Activity Screen...15 Figure 3.4.2.1 Auto Text Complete View...15 Figure 3.4.2.2 Place of Interest List...15 Figure 3.4.2.3 Selected Radius of 800m...15 Figure 3.4.2.4 Selected places...16 Figure 3.4.3.1 List of Museums...17 Figure 3.4.3 Details Activity...17 Figure 3.4.4 Day Planner Activity...18 Figure 3.4.4.1 Places on map view...18 Figure 3.4.4.2 Data of trip stored in database...18 Figure 3.4.5 Whole Trip Activity...19 Figure 3.4.5.1 Save Option...19

vi Figure 3.4.5.2 Gallery Image...20 Figure 3.4.5.2a List in Travel It folder...20 Figure 3.4.5.3 Share option...20 Figure 3.4.5.4 Bitmap Image of Itinerary...20 Figure 3.4.6 Customization Activity screen...21 Figure 3.4.7.1 Calendar Remainder screen...22 Figure 3.4.8 All Trips Activity Screen...23 Figure 3.4.8.1 Whole Trips Screen...23 Figure 4.1 Code snippet for android permissions...24 Figure 4.2 Code snippet for Place Planner Activity...25 Figure 4.3 Code snippet for Day Planner Activity...26 Figure 5.1 List of Museums in San Antonio...27 Figure 5.1.1 List of Museums in San Antonio (Google Search)...28 Figure 5.1.2 List of Museums in Dallas...28 Figure 5.1.3 List of Museums in Dallas (Google Search)...29 Figure 5.1.4 Indian Restaurants (Dallas)...30 Figure 5.1.5 Italian Restaurants(Dallas)...30 Figure 5.1.6 List of Italian Restaurants in Dallas (Google Search)...30 Figure 5.1.7 Radius of 800 (Dallas)...31 Figure 5.1.8 Radius of 25000 (Dallas)...31 Figure 5.1.9 With No internet...32

vii LIST OF TABLES Table 1. Testing Results...33 Table 2. User Evaluations...34

1 1.1 Introduction 1. BACKGROUND AND RATIONALE Tourism can be considered as a most favorite pass time when people get free time. Several travel organizations are available on the web. Planning a trip involves key feature called efficient time management which can be achieved only when the travelers can customize their places of visit and have a refined travel itinerary. The travelers need to have prior knowledge about the most visited places, restaurants and hotels in any particular city they travel. For this, they spend much time browsing multiple websites for best travel plans on PC s and mobile devices. As smartphones are becoming more powerful in terms of computational and communication capabilities, application developers are taking advantage of these capabilities in order to provide new or enhanced services to their applications. There are several travel mobile applications available which are confined to only listing all the available hotels, picnic spot, hospital, ATM, Police-station, bank, etc., in that particular city [2]. This becomes time consuming to search for these services over different mobile applications. Moreover, refining them as per traveler s preference requires additional search results for either finding specific tourist s interest, such as beaches, museums, or to estimate the distance between all the selected places. This application Travel-It allows users to customize their search for places to visit by giving their choice of preferences and provides travelers with itineraries based on their choices in a single application which saves a lot of time. The selected places of visit in any particular city can be viewed on Google maps [1].

2 1.2 Android The Android architecture design has become an interesting field for software developers, expert programmers, and even new Android programmers. Thus, the growth of Android applications in the market is inevitable compared to another mobile operating system. Out of all these platforms, Android occupies about 82% of the smartphone market. It powers millions of mobile devices in more than 190 countries [4]. Figure 1: Graph showing percentage of different mobiles OS in the market [4]. A brief introduction of the various levels is given below: 1. Applications level The Android operating system comes by default with several core applications, such as email client, SMS software, calendar, maps, browser, contacts, Global Positioning System (GPS) and several others. These core applications and any developers applications reside and run at the applications level and are written using Java.

3 2. Libraries level Android comes with a set of C/C++ libraries, System C library, Media libraries, Surface Manager, LibWebCore, SGL, 3D libraries, Free Type, and SQLite, used by the Android system and are available to developers through the Android application framework. 3. Android runtime level Every Android application runs in its process, with its instance of the Dalvik Virtual Machine (VM) and has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format and optimizes for minimal memory footprint. The VM is register-based and runs classes compiled by a Java language compiler that has been transformed into the.dex format by the included dx tool. However, the Dalvik VM relies on the Linux kernel for underlying functionality, such as threading and low-level memory management. Lin et al. (2011) concluded that Dalvik Java code is faster than native code, but in some conditions, it performs badly; therefore, software designers are encouraged to create an efficient application. 4. Application Framework level Android provides an open development platform giving developers the ability to build extremely rich and innovative applications. With this, developers have full access to the same framework APIs that are used by the core applications and are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much more. For instance, developers applications can execute core applications. Java programming language is an Object-Oriented Programming language that is supported by the powerful Java

4 libraries. The Android architecture design allows developers to reuse and overwrite each component using the Java libraries. This is the same mechanism that allows components to be replaced by other developers. The underlying applications are a set of services and systems, which include Views, Content Providers, Resource Manager, Notification Manager, and Activity Manager. The reasons for choosing android are: 1. Openness and Open Source The main advantage of developing Android applications is that, a large number of Android applications, available on the Internet and also the operating system are open source allowing anyone to access and use the source code. 2. Java The advantages of using Java programming language are it is simple, objectoriented, familiar, robust and secure, architecture-neutral and portable, high performance oriented, interpretable, threaded and dynamic. The power of Java is proved on large scale applications, web servers, and support for consumer devices. Furthermore, Android applications are developed with Java, which is the most widely used programming language. As mentioned above, Java is an object-oriented programming language that allows the programmer to access powerful libraries [3]. It is intended to let application developer s code developed for one platform run on other platforms without recompiling. 1.3 Android Studio Android Studio is the official IDE for Android app development, based on IntelliJ IDEA. Android Studio has a great Gradle-based build system, various build variants, and multiple app file generation, Code templates to help you build common app features, good

5 layout and theme editor, lint tools to catch problems, Pro Guard, and app signing capabilities, support for Google Cloud Messaging (GCM) and App Engine. 1.4 Existing Systems There are many mobile applications and different websites providing travel packages to places all over the world, such as Kayak, Trip Advisor, Orbitz.com, Travelocity.com, and Urban Spoon. 1.4.1 Limitations of Existing Systems These existing systems just provide the list of all available hotels, restaurants, and tourist attractions but do not provide an option of customization where the users can refine as per their preferences. Moreover, retrieving complete information about each place such as opening and closing timings requires addition browsing by the user which is time consuming. Once the places are selected by the user there is no means for estimating distance between them and these existing applications do not provide an itinerary to the users with all the places they have selected. The Travel-It application overcomes these limitations by providing some intended features such as allowing customizations for planning trip and providing an itinerary for the entire trip planned which can be saved and shared.

6 2. NARRATIVE 2.1 Problem statement Now-a days there are many mobile applications and different websites providing travel packages to almost all the places over the world. A traveler finds it very difficult to search for the best package as he/she browse multiple websites, contact many travel agents etc. which is a tedious process and is time consuming. Moreover, people travel with families or for business purpose to have a good time, usually for a limited period. So, there should be a system where the users can customize their preferences accordingly and also be able to generate best travel itinerary with a single click. This Travel-It android application allows customization and provides travelers with itineraries based on the individual s choice. 2.2 Motivation When planning for a trip, things like restaurants, hotels and choice of places to visit usually differ as per preferences of traveler. For example, certain travelers may be interested in visiting only museums, amusement parks and tourist attractions and have only Italian or Indian cuisine during course of their trip. For this the travelers need to customize their search as per their preferences for all cities they wish to visit as a part of their trip. The existing travel applications does not take this concept of customization as per traveler s preference into consideration and does not enable an option to save traveler s preferences for their next trips. The shortcomings and inadequate features of such applications motivated me to develop an effective Travel It application.

7 2.3 Project Scope Application is developed for android based tablets and smart phones. To avail the features of this application user need to connect to the internet. This Travel-It application is compatible from Android 5.0 to latest android version Android 6.0 Marshmallow. 2.4 Functionalities The intended functionalities in this application are: 1. Allowing search for places to visit (city name or any valid address of a location). 2. Providing customizable search options based on the user s preferences (e.g. restaurants -Italian restaurants, attractions - museums, beaches). 3. Enabling notifications about the trip. 4. Providing an itinerary for the entire trip and allowing options to: a. Save. b. Share. 5. Providing the history of the previous trips of the user. 2.5 System Requirements The following are the requirements to develop this android application: 1. Operating System: Windows 7 or above 2. Database: SQLite 3. IDE: Android Studio 4. Software: Android SDK (Software Development Kit), Java SE 7 5. Android Device: Android phone or Tablet.

8 3. DEVELOPED SYSTEM DESIGN This section gives information about the architecture of the system used. As shown in Figure 3.1, the Travel-It application consists of Presentation layer, Business logic, Google Places API, Rest access layer, Server, Shared preferences, and SQLite Database. 3.1 Modules Description Figure 3.1. Architecture of Travel-It Application. In this section, the functionality of each module is specified by describing the working flow of the developed design. 3.1.1 Presentation Layer In this architecture, presentation layer contains the User Interface, where the user enters all the required details about the trip such as trip duration, start date, places of visit and so on.

9 3.1.2 Rest Access Layer The Rest access layer is used to establish communication between Google places API and application client. Google places API gets connected with the central database and gets all the information about the place such as Restaurants, Hotels, Tourist Attractions and formats data using Jason parsing. 3.1.3 Shared Preferences The users can customize their search for places to visit by giving their choice of preferences which are stored in shared preferences. By storing these choices of preferences in the shared preferences, they are retained even when the users change the place of visit while planning a trip and even if the app is closed and reopened for planning another trip until the users decide to change their preferences. 3.1.4 SQLite Database All the necessary data about the trip that is required for generating the travel itinerary are stored in SQLite database. The information about all the previous trips are also stored in the database and are retrieved when the user needs them. 3.1.5 Business Logic This is the core module which operates the whole task of the Travel-It application. It adverts to all the internal logical code necessary to make the application run efficiently. 3.1.6 Google Maps This module helps the users to view all the selected places in any city on the maps, so that the traveler can plan the places to visit in that particular city accordingly by estimating the time and distance between different places.

10 3.1.7 Google Places API The list of places of interest (Museums, Zoos, etc.) in any particular place entered by user are retrieved by establishing a HTTP connection with central database through Google places API interface. The information is retrieved from the database as JSON data object which is parsed and only required information is presented on the user interface in the Presentation Layer as shown in the Figure 3.1.6. Figure 3.1.7. Activity Diagram for Server connection and Data Retrieval. 3.2 Use Case Diagram A use case diagram is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases. The main purpose of a use case diagram is to show what system functions are performed by which actor. Roles of the actors in the system can be depicted.

Figure 3.2. Use Case Diagram of Travel-It Application. 11

12 3.3 Design Flow The Figure 3.3 describes the flow of the dynamic aspects of the Travel-It application. The Design Flow diagram is a flow chart to represent the flow from one activity to another activity. Figure 3.3 Design Flow Diagram for Travel-It Application.

13 3.4 User Interface This section gives the overview of user interface of the application. User interface is where user interacts with the application. The complete executional flow of the designed Travel-It application is described in this section. 3.4.1 Main Activity Screen Figure: 3.4.1 shows the Main screen, which is the first screen of the application. Here the user needs to give details about the trip such as trip name, trip duration, start date of the trip. The end date gets set automatically by taking the start date and trip duration into account. There is a button "LETS PLAN" on this screen. The user should enter correct details ad click it to move to the next activity screen. If the trip name is not entered, then the validation error message pops up saying enter trip name. Figure 3.4.1 Main Screen. Figure 3.4.1.1 Validation Error.

14 Figure 3.4.1.2 Main Screen with details. Figure 3.4.1.3 Calendar for setting date. 3.4.2 Place Planner Activity Screen Figure: 3.4.2 shows the Place Planner Activity screen which is the next screen directed from Main Screen, where the user needs to give details about the city or address of any valid location by entering the name and picking it from the auto text complete view. The user can enter the radius value (in meter) as shown in Figure 3.4.2.3 if the user wants to find the places of interest up to a certain distance from the location he/she has entered in the above step. There is a button "Schedule Trip" on this screen which becomes active only after adding atleast one item from place of interest list.

15 Figure 3.4.2 Place Planner Activity Screen. Figure 3.4.2.1 Auto Text Complete View. Figure 3.4.2.2 Place of Interest List. Figure 3.4.2.3 Selected Radius of 800m.

16 3.4.3 Details Activity Screen Figure 3.4.2.4 Selected places. As shown in Figure 3.4.3, the complete information about the item in place of interest (e.g. Museum, Restaurants) can be known the by clicking the item in the list view. If radius is not entered a default value of 25000 meters is taken as shown in Figure 3.4.3.1. The Figure shows the list of all museums in Dallas city taking a default radius value of 25000 meters.

17 On click Figure 3.4.3.1 List of Museums. Figure 3.4.3 Details Activity. 3.4.4 Day Planner Activity Screen Figure: 3.4.4 shows the Day Planner Activity screen. In this activity, the user can view all the selected list of places on map as shown in figure 3.4.4.1 by clicking the button SHOW ON MAP. Here the user adds the places to the itinerary as per time of day. Once the user adds complete list of places for one day then he/she can start trip for next city by clicking on NEXT CITY button which intends to Place Planner Activity. Once complete trip is planned, the final itinerary can be viewed by clicking the button VIEW TRIP which intends to next activity. The button VIEW is used to see the list of places added as per time of day in the database as shown in Figure 3.4.4.2.

18 On click Figure 3.4.4 Day Planner Activity. Figure 3.4.4.1 Places on map view. Figure 3.4.4.2 Data of trip stored in database.

19 3.4.5 Whole Trip Activity Screen Figure: 3.4.5 shows the Whole Trip Activity screen. In this activity, the itinerary of the planned trip is generated. The itinerary contains the list of places selected as per time of day and also displays the distance (in miles) between the places selected. The distances in miles are automatically calculated by taking the latitude and longitude of the selected places. The user can save the trip to the device gallery by clicking the save icon in the menu item as shown in Figure 3.4.5.1. A new folder named Travel It gets created in the device gallery and the itinerary gets saved as an image as shown in Figure 3.4.5.2 and Figure 3.4.5.2a. The user can share the trip itinerary by clicking the share icon in the menu item as shown in Figure 3.4.5.3. The itinerary is sent in the form of a bitmap image as shown in Figure 3.4.5.4. Figure 3.4.5 Whole Trip Activity. Figure 3.4.5.1 Save Option.

20 Figure 3.4.5.2 Gallery Image. Figure 3.4.5.2a List in Travel It folder. Figure 3.4.5.3 Share option. Figure 3.4.5.4 Bitmap Image of Itinerary.

21 3.4.6 Customization Activity Screen Figure: 3.4.6 shows the Customization Activity screen. In this activity, the user is provided with the options to select the places of interest (e.g. Museums, Zoo, etc.) and also choose the type of restaurants such as Indian, Italian. These choices are retained throughout the trip planning even when selected city is changed and even when planning another new trip until the user wishes to change them. 3.4.7 Notification Screen Figure 3.4.6 Customization Activity screen. When the user starts a new trip then an event is created in the calendar of the android device used by the user as shown in Figure 3.4.7.1, and a remainder pops up on the first day of the trip.

22 Figure 3.4.7.1 Calendar Remainder screen. 3.4.8 All Trips Activity Screen Figure 3.4.8 shows the All Trips Activity screen, where the user can see all the previous trips in a list view. The user can select one item of the list view which will direct to the whole trip activity screen and displays the entire trip as shown in Figure 3.4.8.1.

23 Figure 3.4.8 All Trips Activity Screen. Figure 3.4.8.1 Whole Trips Screen.

24 4. IMPLEMENTATION OF APPLICATION MODULES This section consists of few code snippets which perform the main tasks of execution. 4.1 XML Code for Android Permissions: Figure 4.1 shows the part of code for the android permissions required for running the application on any android device. The permissions required are Calendar, internet, location and to write and read the external storage. Figure 4.1 Code snippet for android permissions. 4.2 Place Planner Activity: Figure 4.2 shows the part of code that takes the choice from the user about the place of interest (e.g. Museum, Zoo) and makes a HTTP url connection to the server through google places API interface.

25 Figure 4.2 Code snippet for Place Planner Activity. 4.3 Day Planner Activity: Figure 4.3 shows the part of code that adds the places to certain time of day and stores this in the database.

Figure 4.3 Code snippet for Day Planner Activity. 26

27 5. TESTING AND VALIDATION The testing and validation section gives the summary of some of the test cases and the validation of the application in different scenarios. 5.1 Test Case Scenarios This section consists of various test cases scenarios. Various restrictions that can be applied using this application can be learned in this section. Test Case 1: Retrieving Correct List of Places When the user selects a particular place of interest such as Museums, zoo or Amusement parks in any city, the application should provide the correct relevant data. The Figure 5.1.1 shows the list of museums in San Antonio provided by the Travel-It app and is tested with google search for list of museums in San Antonio as shown in Figure 5.1. The Figure 5.1.3 shows the list of museums in Dallas provided by the Travel-It app and is tested with google search for list of museums in Dallas as shown in Figure 5.1.2. These tests showed positive result of Travel-It app in retrieving Correct List of Places. Figure 5.1 List of Museums in San Antonio (Google Search).

28 Figure 5.1.1 List of Museums in San Antonio. Figure 5.1.2 List of Museums in Dallas (Google Search).

29 Figure 5.1.3 List of Museums in Dallas. Test Case 2: Retrieving Correct List of Places for Customization When the user customizes the places of interest such as Museums, Zoo and Italian restaurant in any city, then the app should provide only these items in the recycler view of the Travel-It application and also should display correct list of restaurants for Indian and Italian cuisines. Figure 5.1.4 shows the list of Indian restaurants in Dallas and Figure 5.1.5 shows the list of Italian restaurants in Dallas these lists are tested with google search results as shown in Figure 5.1.6.

30 Figure 5.1.4 Indian Restaurants (Dallas). Figure 5.1.5 Italian Restaurants(Dallas). Figure 5.1.6 List of Italian Restaurants in Dallas (Google Search).

31 Test Case 3: Retrieving Correct List of Places for Different Radius Values. When the user selects a particular city, and wants to find list of museums, zoos or restaurants up to a particular distance such as 1000 meters or 2000 meters then he/she can enter the radius value (in meters) and select the particular place of interest (Museums, zoo, etc.) as shown in Figure 5.1.7 and Figure 5.1.8. If any specific value of radius is not entered a value of 25000 meters is taken as a default value. Figure 5.1.7 Radius of 800 (Dallas). Figure 5.1.8 Radius of 25000 (Dallas).

32 Test Case 4: With No Internet. When there no internet available the auto text complete view does not pop up so the user cannot proceed further to select city, or any particular place of interest in it as shown in Figure 5.1.9. No auto text complete view Figure 5.1.9 With No internet.

33 5.2 Other Miscellaneous Cases The Table1 consists of a testing result summary of some of the test cases. S.NO SCENARIOS EXPECTED RESULT STATUS 1 Installation Installing TravelIt.apk file on Android phone. Installation Successful Success 2 User Interface Check if any issues with User Interface Display UI Success 3 Validation Check Checking if the trip name is entered or not Trip name is entered and table is created with trip name in database. Success 4 Trip Information Checking if the previous trips information can be retrieved form the databases accurately. The previously stored trip information in database is retrieved on clicking trip name. Success 5 Saving Trip Information Checking if the trip information can be saved to the device gallery or not The download option in menu item saves the trip to the gallery with a toast message. Success Table 1. Testing results.

34 5.3 Users Evaluations Report The application performance statistics is taken with the help of 10 other users who tried the application on their own mobile devices. The survey comprises of a set of questions with options averaging up to the specified results on a scale of 1-10 as shown in Table 2. The suggested improvements from the users such as, providing directions between selected places and taking current location of the user were considered and are referred for future work. Test Scenarios Result User interface 9.2 User friendliness 9.8 Correct data retrieval 9.4 Saving & sharing options 9.2 Retrieving previous trips 10 Would you recommend this application to 9.5 a friend? Table 2. User Evaluations.

35 6. CONCLUSION AND FUTURE WORK 6.1 Conclusion The application design provides the mentioned services to its users in the form of an android platform. The Travel-It application provides complete features enabling the user to generate a recreational trip by giving complete information about the places of visit. This application provides an itinerary of the trip planed as per user s preferences which can be saved and shared for future use. The itinerary contains the list of places selected as per time of day and also displays the distance between the places selected. Thus, this application overcomes the limitations of existing applications as mentioned previously in section 1.4.1, by providing customization option for setting radius and also to select particular places of interest throughout the trip plan. 6.2 Future Work The application can be further improved by adding the following functionalities: Adding directions for travel from one selected location to another. Providing users with option to search for places of interest (Museums, Zoos, etc.) by taking the current location or address of the user. Adding option for providing means to customize the units of measurement while entering the radius value. Adding option to sort the list of places of interest (Museums, Zoos, etc.) based on features such as rating, price level.

36 7. BIBLIOGRAPHY [1] Smart Travel Guide: Application for Android Mobile. http://www.ijecscse.org/papers/specialissue/comp2/171.pdf [2] A Survey on Android Based Application to Provide Information about Pune City. https://www.ijircce.com/upload/2016/february/166_63_a%20survey.pdf [3] Android Development 2017. https://developer.android.com/about/dashboards/index.html [4] Statista- The Statistics Portal. https://www.statista.com/chart/4431/smartphone-operating-system-market-share/

37 APPENDIX A: Code Snippets This section consists of few code snippets which perform the main tasks of execution. Main Screen Activity:

Place Planner Activity: 38

Place Details Activity: 39

Day Planner Activity: 40

Saving Itinerary Event: 41

Calendar Event: 42

Customization Event: 43

Places on Map Event 44