MAKANI ANDROID APPLICATION Prepared by: Asma’ Hamayel Alaa Shaheen.

Slides:



Advertisements
Similar presentations
AD User Import From SIMS.NET
Advertisements

Prepared by: Prepared by: Jameela Rabaya Jameela Rabaya Fatima Darawsha Fatima Darawsha.
Landscape Change Mapper Ryan Feather and Dan Halloran 4/30/15.
CS378 - Mobile Computing Maps. Using Google Maps Like other web services requires an API key from Google ons/google-apis/mapkey.html.
Wireless LAN Topology Visualiser Project Supervisor: Dr Arkady Zaslavsky Project Team Members: Jignesh Rambhia Robert Mark Bram Tejas Magia.
Component-Based Software Engineering Introducing the Bank Example Paul Krause.
(NHA) The Laboratory of Computer Communication and Networking Network Host Analyzer.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
Company/Product Overview. You have lots of files all over the place.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
CAEL 5012 Rich Internet Applications. What you need For this part of the course you will need access to a server with PHP and MYSQL which will be supplied.
BY LINDA MOHAISEN MIKE ZIELINSKI The Tree Census Project.
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
NETWORK CENTRIC COMPUTING (With included EMBEDDED SYSTEMS)
Google Maps Android API v2 吳俊興 國立高雄大學 資訊工程學系 CSF645 – Mobile Computing 行動計算
Location-Based API 1. 2 Location-Based Services or LBS allow software to obtain the phone's current location. This includes location obtained from the.
Workshop on Enhanced Self-Evaluation Platform (SEP) on Information Technology in Education LIU, Man Lee & HO, Chung Hong Centre of Excellence Teachers.
© Keren Kalif Intro to Android Development Written by Keren Kalif, Edited by Liron Blecher Contains slides from Google I/O presentation.
CS378 - Mobile Computing Web - WebView and Web Services.
Module 8: Managing Client Configuration and Connectivity.
GIS technologies and Web Mapping Services
Server-side Scripting Powering the webs favourite services.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Concurrency in Android with.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
Social network Twitter Hashtag: #m2eu #android Personal Israel Ferrer –
Location based services
Take a leap towards the most promising technology
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Home Media Network Hard Drive Training for Update to 2.0 By Erik Collett Revised for Firmware Update.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Networking: Part 2 (Accessing the Internet). The UI Thread When an application is launched, the system creates a “main” UI thread responsible for handling.
Outline Overview Video Format Conversion Connection with An authentication Streaming media Transferring media.
Computer and Information Science Ch1.3 Computer Networking Ch1.3 Computer Networking Chapter 1.
NMED 3850 A Advanced Online Design January 12, 2010 V. Mahadevan.
Week seven CIT 354 Internet II. 2 Objectives Database_Driven User Authentication Using Cookies Session Basics Summary Homework and Project 2.
CS4274 TERM PROJECT 2010 SOLE : SHARING OF LIVING EXPERIENCES Team Members: Tan Gui Han Wilson Duy Vinh Chuc Damien Catala Cheng Zhi Xiang.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
1 Welcome to CSC 301 Web Programming Charles Frank.
CSC 2720 Building Web Applications Server-side Scripting with PHP.
NETWORK HARDWARE AND SOFTWARE MR ROSS UNIT 3 IT APPLICATIONS.
CS378 - Mobile Computing Responsiveness. An App Idea From Nifty Assignments Draw a picture use randomness Pick an equation at random Operators in the.
Android networking 1. Network programming with Android If your Android is connected to a WIFI, you can connect to servers using the usual Java API, like.
Server - Client Communication Getting data from server.
EGEE User Forum Data Management session Development of gLite Web Service Based Security Components for the ATLAS Metadata Interface Thomas Doherty GridPP.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
DATABASE CONNECTIVITY TO MYSQL. Introduction =>A real life application needs to manipulate data stored in a Database. =>A database is a collection of.
Android - Location Based Services. Google Play services facilitates adding location awareness to your app with automated location tracking Geo fencing.
HW#9 Clues CSCI 571 Fall, HW#9 Prototype
FriendFinder Location-aware social networking on mobile phones.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
FriendFinder Location-aware social networking on mobile phones.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Recap of Part 1 Terminology Windows FormsAndroidMVP FormActivityView? ControlViewView? ?ServiceModel? Activities Views / ViewGroups Intents Services.
Project Retrospective Team FancyPants. What is CyteSee? Idea.
Display Page (HTML/CSS)
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
USING ANDROID WITH THE INTERNET. Slide 2 Lecture Summary Getting network permissions Working with the HTTP protocol Sending HTTP requests Getting results.
The Client-Server Model
Node.js Express Web Applications
By Dan Gotlund & Eric Acierto
Tracking and Booking Taxi
Sensors, maps and fragments:
Task Management System (TMS)
PHP / MySQL Introduction
Iteration 1 Presentation
Software Engineering for Internet Applications
CS323 Android Topics Network Basics for an Android App
Presentation transcript:

MAKANI ANDROID APPLICATION Prepared by: Asma’ Hamayel Alaa Shaheen

What is Makani  Makani is an android application.  It supports Google maps capabilities like: GPS, assign location, search about location and add new information to Google map.

Why Makani  To learn more about Geo-location applications and handling the data in such maps applications.  To learn more about Google API's maps technologies.  The Application supports retrieving data from Google and retrieving the data from our distributed database.

Cont.  Using this application, we could bring information about places in Palestine.  Users can share their information and rate other users' places information.

Cont.  It allows users to add new information about certain places, add pictures, videos, audios and description.  It contains two parts: Client side and Server side.

Requirements Functional Requirements  Search: Search about places and details about it.  Add: add new places or information about these places.

Cont.  Log In: log in into the application.  Log Out: log out from the application.  Exit: exit from the application.

Requirements Non Functional Requirements  Security: the application has security property by: - If the user want to log in he must enter his user name and password. - If the user hasn’t an account in our application he can’t see any of users’ posts.

Cont.  Scalability: The application can contain many users at a time and can be scalable to have more users.  Usability: our application is user friendly and easy to use.

Background  Our application contains three parts: 1. Database. 2. API. 3. Android Application.

Application Parts Figure ‎1 ‑ 1: connect android with database among API

Application Parts Figure ‎1 ‑ 2: connect android with database among API

Database Design  Our database is My SQL database (PHP My Admin) on hosting website.  it contains four tables: - Users Table. - Places Table. - Rating Table.

Application Parts Figure ‎1 ‑ 3: connect android with database among API

API Design  We stored data and retrieved it by PHP script.  the data is sent to the server using HTTP requests.  The response from server is JSON.  The PHP scripts on the server send queries to the database to select data for a place or a user, or to store data about a place or a user.

Requests to the PHP Scripts:  We used Apache HttpClient library that simplifies handling HTTP requests.  We retrieved and sent data via the HttpClient class.  The HttpClient uses HttpUriRequest to send and receive data. Important subclass of HttpUriRequest are HttpGet and HttpPost.

Handling the responses of the PHP Scripts  We extracted the data that returned from the PHP scripts using json library.  JSON, Java Script Object Notation, is a text- based open standard designed for human readable data interchange.  The JSON format is often used for serializing and transmitting structured data over a network connection.

Cont.  We used JSON parser class that has a method which will make http request to get JSON data and returns a JSON Object.  In order to parse the JSON data we used pluggable streaming library.

Cont.  This library includes: - Jackson Factory : based on the popular Jackson library which is considered as the fastest in terms of parsing/serialization speed.  Jackson Factory is a java file that uses json factory, json parser, and json response all together

Application Parts Figure ‎1 ‑ 4: connect android with database among API

Android Application Our android application consist of:  Manifest File : this file contains the permissions like: - Internet Permissions. - Network State Permissions. - GPS location Permission. - GPS location Coarse Permission.

Cont.  Layout Files.  SRC folder.  Library folder.  Drawable Folder.

Technologies used in our project Using Google Maps in Android:  In order to use Google Map in your application you should obtain Google Maps API Key.  Extract the MD5 fingerprint.

Cont.  Using element to display the Google Maps in your activity.  Using the element to position the map within the activity.

Cont. Android defines a package called com.google.android.maps which includes:  MapActivity.  MapView.  MapController.  Itemized overlay.  GeoPoint.

Google Maps API Google Map API Includes:  Google Places API.  Places AutoComplete API.  Geocoding API.

Google Places API  It is a service that returns information about Places.  Place requests specify locations as latitude/longitude coordinates.  Google places API support the following request: - Place Search. - Place Details. - Places Autocomplete.

Cont. In order to use the Google places API in the application we should install and integrate these jars libraries: 1. google-api-client beta.jar 2. google-api-client-android beta.jar (only for SDK >= 2.1) 3. google-oauth-client beta.jar 4. google-http-client beta.jar 5. google-http-client-android beta.jar (only for SDK >= 2.1) 6. google-http-client-android beta.jar (only for SDK >= 3.0) 7. gson-2.1.jar 8. guava jar 9. jackson-core-asl jar 10. jsr jar 11. protobuf-java jar

Places Autocomplete API  We used it to return the full address of a place based on the text search.  It connects to the Google API service to return the data.  The service responds with a list of Places matching the text string, the requested types, and any location bias that has been placed.

Geocoding API  Geocoding is the process of converting addresses into geographic coordinates.  It provides a direct way to access a geocoder via an HTTP request.  The output is returned as JSON.

GPS  we used android Location API in addition to mobile GPS in order to overcome GPS limitations.  Android contains the android.location package which provides the API to determine the current geo position which contains: - LocationManager. - LocationProvider. - LocationListener.

Async Task  It is a class in the android that enables proper and easy use of the UI thread.  allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers.

Cont.  An asynchronous task is defined by 3 generic types called: Params, Progress, and Result.  It contains 4 methods called: onPreExecute, doInBackground, and onProgressUpdate and onPostExecute.

Application in depth When the application starts:  Run Dashboard Activity to show if the user is logged in or not.  If not logged in, call the Register Activity, the user fill in details, then it connects to PHP script to store the users information in the database.  Then switch to the Login Activity.

LOGIN and REGISTER Activities Figure1.5:LogIn activityFigure1.6:Register activity

Main Activity  The Map view is representing the main activity, which is the map of the current location.  It checks if the user has internet access otherwise it will ask to connect to the internet.  It brings the current location either from GPS or from Wi-Fi Access using the Location API in Android

Snap shot from application Figure ‎1 ‑ 7: Place Search ActivityFigure ‎1 ‑ 8: Places List

Snap shot from application Figure ‎1 ‑ 9: AutoComplete Form Activity Figure ‎1 ‑ 10: Map Activity

Snap shot from application Figure ‎3 ‑ 7: Places Map with Markers Figure ‎3 ‑ 8: Place Details

Snap shot from application Figure ‎1 ‑ 11: Menu in the Map ActivityFigure ‎1 ‑ 12:Place in details

Conclusion On Server Build Database Using PHP My Admin API Write PHP Scripts to be the interface or API btw Database and Application. Final Results Application connects both to API and to Google Database Google API's Application connects to Google API's and connects to Distributed Database to bring the data and show it on map. Figure ‎1 ‑ 13: Methodology in the Project

Conclusion In this project we achieve the following:  We built a full functional application that allow a user to go through the internet to Google Map, find places and post information about different types of Places.  A user could find information about universities, schools, banks, museums, restaurants, airports, etc.

Cont.  A user can view pictures about the place. Also he can post pictures for a certain place.  A user can view the video about the place, and he can post other videos too.  This project can manage access many users on the same application, so it is a distributed application with distributed database.  This Application connects to Google API's, it uses Google Maps API to view the data on the map.