FAMOUS PLACES &
FAVOURITE EVENTS: USING
INTELLIGENT GPS



                Ankur Khanna
                 Garima Goel
                 James Maguire
                 Yasir Hameed
CONTENTS
   Need for the App

   What the App is

   Design Layout

   Implementation

   Reliability, Longevity, Consistency & Validity

   Competition

   How can it be funded

   Problem
NEED FOR THE APP!

   Whenever you travel across an unknown place, you
    are always curious to know about the sites that fall
    by your way!!!

                          HEY,

                       what’s this!!!
THE APPLICATION

    The app Famous Place & Favourite Event: Using
    Intelligent GPS helps to your curiosity by
    recognising the famous places on your way to
    some destination.

   Pops up a message showing what’s the place and
    why is it famous for.

   Shows the visitor’s rating for that particular place.
APPLICATION CONTINUED….

   Adding to the curiosity, the app also pops up asking
    you to know more about the place if you are very
    much interested.

   Gives a facility to store all the places of your likes
    and that you would like to visit them later.

   Helps in locating those stored places showing the
    best possible way to visit them whenever and from
    wherever your current location is.
FAMOUS PLACE POP POP!!!
THE APP CONT….


   When the famous places are stored in the app, you
    can click on that place later for showing you the
    way to that destination considering the shortest
    route and the cheapest way.

   Also, tells the best route in terms of traffic.
THAT’S NOT ALL!!!
And also don’t want to miss out some of the important
events of your likes that occur in the city and nearby
areas.

                       Is there not any
                       rock concert going
                       in the city,,, m so
                       bored!!!
THAT’S NOT ALL!!!
   Pops up a message showing all the events of your
    likes that are going to happen in the city during your
    stay.

   The adaptive app recognises your most visited
    places in your hometown.

   Shows events related to your favourite’s.
THAT NOT ALL CONT…..
   Clicking on the event will plan your travel to attend
    it along with your transport and accommodation.

   It even arranges your visit in time so that you do not
    miss your flight.
DESIGN LAYOUT
A welcome note appears each time you visit a new
place…
FAMOUS PLACE POP POP!!!
FAVORITE EVENT POP POP!!!
•   A message pops up with the details of the event that is
    going to occur in the city…
Your interest in the event will let you know more details
about trip regarding the transport as well as the
accommodation.
When you click on accommodation, it suggests you some of the nearby
places of stay along with the star rating details and price..
HOW OUR APP IS BETTER

   The adaptive learning of the app about the preferences of
    the user.

   The pervasive idea i.e. while travelling the app pops up
    the famous place you are coming across.

   The upcoming events that can be missed by planned
    tours cannot be missed by this App, and would guide you
    whether you can attend that event or not on the basis of
    your return flight timing or on your other important
    schedules.
IMPLEMENTATION
   Though the application is hard to implement as it has an
    adaptive feature of learning.

   In recent years there has been a lot of work done on the
    adaptive learning.

   System’s like SmartKom, GUIDE.
    ( More information can be learned from
      A Survey of Map-based Mobile Guides
        Jorg BAUS, Keith CHEVERST,
         Christian KRAY)

    http://www.equator.ac.uk/var/uploads/Christian%20Kray,%
    20and%20J-rg%20Baus.2003.pdf
   The application functionality of detecting places by
    itself, giving a pop message and re-directing it to a
    certain link has been overcome through the help of
    App Inventor.
DIJKSTRA'S ALGORITHM
 Graph   search algorithm
 Shortest path problem
 This algorithm is often used
  in routing and as a subroutine in other
  graph algorithms
HOW TO IMPLEMENT DIJKSTRA’S ALGORITHM
   We first list the data structures used by the
    algorithm.
     public interface RoutesMap
{
int getDistance(start, end);
List<City> getDestinations(City city);
 }
CONTINUED……
 The Java Collections feature
 the Set interface, and more precisely,
 the HashSet implementation which offers
 constant-time performance on
 the containsoperation, the only one we
 need. This defines our first data structure.
private final Set<City> settledNodes =newHashSet<City>();
private boolean isSettled(City v)
{
return settledNodes.contains(v);
 }
CONTINUED…….
   As we've seen, one output of Dijkstra's algorithm is
    a list of shortest distances from the source node to
    all the other nodes in the graph. A straightforward
    way to implement this in Java is with a Map, used
    to keep the shortest distance value for every node.
private final Map<City, Integer> shortestDistances =
new HashMap<City, Integer>();
private void setShortestDistance(City city, int
distance)
 {
shortestDistances.put(city, distance);
 }
 public int getShortestDistance(City city) {
Integer d = shortestDistances.get(city); return (d ==
null) ? INFINITE_DISTANCE : d;
 }
CONTINUED……
 Another output of the algorithm is the predecessors
  tree, a tree spanning the graph which yields the
  actual shortest paths. Because this is
  the predecessors tree, the shortest paths are
  actually stored in reverse order, from destination to
  source. Reversing a given path is easy
  with Collections.reverse().
 The predecessors tree stores a relationship
  between two nodes, namely a given node's
  predecessor in the spanning tree. Since this
  relationship is one-to-one, it is akin to
  a mapping between nodes. Therefore it can be
  implemented with, again, a Map. We also define a
  pair of accessors for readability.
private final Map<City, City> predecessors = new
HashMap<City, City>();

private void setPredecessor(City a, City b)
{
   predecessors.put(a, b);
}

public City getPredecessor(City city)
{
  return predecessors.get(city);
}
CONTINUED…...
   As seen in the previous section, a data structure
    central to Dijkstra's algorithm is the set of unsettled
    vertices Q. In Java programming terms, we need a
    structure able to store the nodes of our example
    graph, i.e. City objects. That structure is then looked
    up for the city with the current shortest distance given
    by d().

   We could do this by using another Set of cities, and
    sort it according to d() to find the city with shortest
    distance every time we perform this operation. This
    isn't complicated, and we could
    leverage Collections.min() using a
    custom Comparator to compare the elements
    according to d().
   But because we do this at every iteration, a smarter
    way would be to keep the set ordered at all times.
    That way all we need to do to get the city with the
    lowest distance is to get the first element in the set.
    New elements would need to be inserted in the right
    place, so that the set is always kept ordered.

   A quick search through the Java collections API
    yields the PriorityQueue: it can sort elements
    according to a custom comparator, and provides
    constant-time access to the smallest element. This
    is precisely what we need, and we'll write a
    comparator to order cities (the set elements)
    according to the current shortest distance. Such a
    comparator is included below, along with
    the PriorityQueue definition. Also listed is the small
    method that extracts the node with the shortest
    distance.
private final Comparator<City> shortestDistanceComparator = new Comparator<City>()
   {
     public int compare(City left, City right)
     {
        int shortestDistanceLeft = getShortestDistance(left);
        int shortestDistanceRight = getShortestDistance(right);

           if (shortestDistanceLeft > shortestDistanceRight)
           {
               return +1;
           }
           else if (shortestDistanceLeft < shortestDistanceRight)
           {
               return -1;
           }
           else // equal
           {
               return left.compareTo(right);
           }
       }
  };

private final PriorityQueue<City> unsettledNodes = new PriorityQueue<City>(INITIAL_CAPACITY,
shortestDistanceComparator);

private City extractMin()
{
   return unsettledNodes.poll();
}
CONTINUED…..
  We have defined our data structures, we
   understand the algorithm, all that remains to do is
   implement it.
public void execute(City start, City destination) {
initDijkstra(start); while (!unsettledNodes.isEmpty()) {
// get the node with the shortest distance City u =
extractMin(); // destination reached, stop if (u ==
destination) break; settledNodes.add(u);
relaxNeighbors(u); } }
RSS FEEDS – WHAT ARE THEY?
   Really Simple Syndication

   Provides updates on new web content such as news
    headlines, blog entries. Also new audio content and images
    can be embedded in a RSS feed.

   Need an RSS reader or aggregator to read them

   Written in XML format and are open source

   Several versions, including Really Simple Syndication, Rich
    Site Summary and RDF Site Summary
WHY USE RSS FEEDS?
 Savetime, as only need to access one RSS
 reader or aggregator

 Disseminate    information about your topic

 Create   RSS feeds on specific topics

 Easily   stay up to date with information
WEBSITES
   Further work on it would surely make this app worth
    a look for.

   The static data can be recovered easy from sites
    that are reliable but the dynamic data is what is the
    point that would make this app impressive
RELIABILITY
CONSISTENCY
VALIDITY
LONGEVITY
RELIABILITY
The reliability can often be measured on the following
points:

•   Accuracy of information provided within articles
•   Appropriateness of the images provided with the
    article
•   Appropriateness of the style and focus of the
    articles.
•   Susceptibility to, and exclusion and removal of,
    false information
•   Comprehensiveness, scope and coverage within
    articles and in the range of articles
CONSISTENCY, VALIDITY, LONGEVITY
   The source such as trip advisor provides
    information for people who have previously visited.

   The information generally displayed are consistent
    and valid for a period of time.

   Longevity of online sources can never be certain
    but websites such as trip advisor and booking.com
    are website which have been around for a long time
    and hopefully will stay be foreseeable future.
COMPETITION
   Though the app is totally innovative and is one of its
    kind but every app has some competition to face.

   Our app is no exclusion to this and has some
    already developed apps to face competition.

   TRIPS, is an app over app store that keeps track of
    each trip people make.

   We can enter an itinerary; track expenses; record
    payments and print an final report.
COMPETITION CONT…
   On the Android platform there are various competitive
    apps currently present such as London GPS City Guide
    LLC, London City Guide Trip Advisor.

 These have already built-in tours in them and point you to
  the route. The former app in an audio app that lets the
  tour be more interactive.
 Travel Planner app lets you
       Plan your trip between two addresses/stops.

       Locate the nearest stop via GPS.

       Trip presentation on a map.

       Price and SMS-codes.

HOW CAN THE APP BE FUNDED
   By following the below point’s, we can make sure
    that our app can be funded:

     Create a Business Plan.
     Know the market.
     Have a Revenue model
     Try and Build a Prototype



                              OR
       Elevator Pitch to an Angel Investor.
BUSINESS PLAN
 cover page and table of contents
 Business description

 business environment analysis

 competitor analysis

 market analysis

 Operations plan

 management summary

 attachments and milestones

 Financial Plan

 Industry Background
PROBLEM
   The retrieval of dynamic data.

   If there are supposedly more than 50 places we
    can’t just store it locally, the integration of a
    database is essential.

   The adaptive learning of the app will be a task
    difficult to conquer.

   The implementation of cost effective algorithm in
    the application.
THANKS !!!

Presentation

  • 1.
    FAMOUS PLACES & FAVOURITEEVENTS: USING INTELLIGENT GPS Ankur Khanna Garima Goel James Maguire Yasir Hameed
  • 2.
    CONTENTS  Need for the App  What the App is  Design Layout  Implementation  Reliability, Longevity, Consistency & Validity  Competition  How can it be funded  Problem
  • 3.
    NEED FOR THEAPP!  Whenever you travel across an unknown place, you are always curious to know about the sites that fall by your way!!! HEY, what’s this!!!
  • 4.
    THE APPLICATION The app Famous Place & Favourite Event: Using Intelligent GPS helps to your curiosity by recognising the famous places on your way to some destination.  Pops up a message showing what’s the place and why is it famous for.  Shows the visitor’s rating for that particular place.
  • 5.
    APPLICATION CONTINUED….  Adding to the curiosity, the app also pops up asking you to know more about the place if you are very much interested.  Gives a facility to store all the places of your likes and that you would like to visit them later.  Helps in locating those stored places showing the best possible way to visit them whenever and from wherever your current location is.
  • 6.
  • 7.
    THE APP CONT….  When the famous places are stored in the app, you can click on that place later for showing you the way to that destination considering the shortest route and the cheapest way.  Also, tells the best route in terms of traffic.
  • 8.
    THAT’S NOT ALL!!! Andalso don’t want to miss out some of the important events of your likes that occur in the city and nearby areas. Is there not any rock concert going in the city,,, m so bored!!!
  • 9.
    THAT’S NOT ALL!!!  Pops up a message showing all the events of your likes that are going to happen in the city during your stay.  The adaptive app recognises your most visited places in your hometown.  Shows events related to your favourite’s.
  • 10.
    THAT NOT ALLCONT…..  Clicking on the event will plan your travel to attend it along with your transport and accommodation.  It even arranges your visit in time so that you do not miss your flight.
  • 11.
  • 12.
    A welcome noteappears each time you visit a new place…
  • 13.
  • 16.
    FAVORITE EVENT POPPOP!!! • A message pops up with the details of the event that is going to occur in the city…
  • 17.
    Your interest inthe event will let you know more details about trip regarding the transport as well as the accommodation.
  • 18.
    When you clickon accommodation, it suggests you some of the nearby places of stay along with the star rating details and price..
  • 19.
    HOW OUR APPIS BETTER  The adaptive learning of the app about the preferences of the user.  The pervasive idea i.e. while travelling the app pops up the famous place you are coming across.  The upcoming events that can be missed by planned tours cannot be missed by this App, and would guide you whether you can attend that event or not on the basis of your return flight timing or on your other important schedules.
  • 20.
  • 21.
    Though the application is hard to implement as it has an adaptive feature of learning.  In recent years there has been a lot of work done on the adaptive learning.  System’s like SmartKom, GUIDE. ( More information can be learned from A Survey of Map-based Mobile Guides Jorg BAUS, Keith CHEVERST, Christian KRAY) http://www.equator.ac.uk/var/uploads/Christian%20Kray,% 20and%20J-rg%20Baus.2003.pdf
  • 22.
    The application functionality of detecting places by itself, giving a pop message and re-directing it to a certain link has been overcome through the help of App Inventor.
  • 25.
    DIJKSTRA'S ALGORITHM  Graph search algorithm  Shortest path problem  This algorithm is often used in routing and as a subroutine in other graph algorithms
  • 26.
    HOW TO IMPLEMENTDIJKSTRA’S ALGORITHM  We first list the data structures used by the algorithm. public interface RoutesMap { int getDistance(start, end); List<City> getDestinations(City city); }
  • 27.
    CONTINUED……  The JavaCollections feature the Set interface, and more precisely, the HashSet implementation which offers constant-time performance on the containsoperation, the only one we need. This defines our first data structure.
  • 28.
    private final Set<City>settledNodes =newHashSet<City>(); private boolean isSettled(City v) { return settledNodes.contains(v); }
  • 29.
    CONTINUED…….  As we've seen, one output of Dijkstra's algorithm is a list of shortest distances from the source node to all the other nodes in the graph. A straightforward way to implement this in Java is with a Map, used to keep the shortest distance value for every node.
  • 30.
    private final Map<City,Integer> shortestDistances = new HashMap<City, Integer>(); private void setShortestDistance(City city, int distance) { shortestDistances.put(city, distance); } public int getShortestDistance(City city) { Integer d = shortestDistances.get(city); return (d == null) ? INFINITE_DISTANCE : d; }
  • 31.
    CONTINUED……  Another outputof the algorithm is the predecessors tree, a tree spanning the graph which yields the actual shortest paths. Because this is the predecessors tree, the shortest paths are actually stored in reverse order, from destination to source. Reversing a given path is easy with Collections.reverse().  The predecessors tree stores a relationship between two nodes, namely a given node's predecessor in the spanning tree. Since this relationship is one-to-one, it is akin to a mapping between nodes. Therefore it can be implemented with, again, a Map. We also define a pair of accessors for readability.
  • 32.
    private final Map<City,City> predecessors = new HashMap<City, City>(); private void setPredecessor(City a, City b) { predecessors.put(a, b); } public City getPredecessor(City city) { return predecessors.get(city); }
  • 33.
    CONTINUED…...  As seen in the previous section, a data structure central to Dijkstra's algorithm is the set of unsettled vertices Q. In Java programming terms, we need a structure able to store the nodes of our example graph, i.e. City objects. That structure is then looked up for the city with the current shortest distance given by d().  We could do this by using another Set of cities, and sort it according to d() to find the city with shortest distance every time we perform this operation. This isn't complicated, and we could leverage Collections.min() using a custom Comparator to compare the elements according to d().
  • 34.
    But because we do this at every iteration, a smarter way would be to keep the set ordered at all times. That way all we need to do to get the city with the lowest distance is to get the first element in the set. New elements would need to be inserted in the right place, so that the set is always kept ordered.  A quick search through the Java collections API yields the PriorityQueue: it can sort elements according to a custom comparator, and provides constant-time access to the smallest element. This is precisely what we need, and we'll write a comparator to order cities (the set elements) according to the current shortest distance. Such a comparator is included below, along with the PriorityQueue definition. Also listed is the small method that extracts the node with the shortest distance.
  • 35.
    private final Comparator<City>shortestDistanceComparator = new Comparator<City>() { public int compare(City left, City right) { int shortestDistanceLeft = getShortestDistance(left); int shortestDistanceRight = getShortestDistance(right); if (shortestDistanceLeft > shortestDistanceRight) { return +1; } else if (shortestDistanceLeft < shortestDistanceRight) { return -1; } else // equal { return left.compareTo(right); } } }; private final PriorityQueue<City> unsettledNodes = new PriorityQueue<City>(INITIAL_CAPACITY, shortestDistanceComparator); private City extractMin() { return unsettledNodes.poll(); }
  • 36.
    CONTINUED…..  Wehave defined our data structures, we understand the algorithm, all that remains to do is implement it. public void execute(City start, City destination) { initDijkstra(start); while (!unsettledNodes.isEmpty()) { // get the node with the shortest distance City u = extractMin(); // destination reached, stop if (u == destination) break; settledNodes.add(u); relaxNeighbors(u); } }
  • 37.
    RSS FEEDS –WHAT ARE THEY?  Really Simple Syndication  Provides updates on new web content such as news headlines, blog entries. Also new audio content and images can be embedded in a RSS feed.  Need an RSS reader or aggregator to read them  Written in XML format and are open source  Several versions, including Really Simple Syndication, Rich Site Summary and RDF Site Summary
  • 38.
    WHY USE RSSFEEDS?  Savetime, as only need to access one RSS reader or aggregator  Disseminate information about your topic  Create RSS feeds on specific topics  Easily stay up to date with information
  • 39.
  • 40.
    Further work on it would surely make this app worth a look for.  The static data can be recovered easy from sites that are reliable but the dynamic data is what is the point that would make this app impressive
  • 41.
  • 42.
    RELIABILITY The reliability canoften be measured on the following points: • Accuracy of information provided within articles • Appropriateness of the images provided with the article • Appropriateness of the style and focus of the articles. • Susceptibility to, and exclusion and removal of, false information • Comprehensiveness, scope and coverage within articles and in the range of articles
  • 43.
    CONSISTENCY, VALIDITY, LONGEVITY  The source such as trip advisor provides information for people who have previously visited.  The information generally displayed are consistent and valid for a period of time.  Longevity of online sources can never be certain but websites such as trip advisor and booking.com are website which have been around for a long time and hopefully will stay be foreseeable future.
  • 44.
  • 45.
    Though the app is totally innovative and is one of its kind but every app has some competition to face.  Our app is no exclusion to this and has some already developed apps to face competition.  TRIPS, is an app over app store that keeps track of each trip people make.  We can enter an itinerary; track expenses; record payments and print an final report.
  • 46.
    COMPETITION CONT…  On the Android platform there are various competitive apps currently present such as London GPS City Guide LLC, London City Guide Trip Advisor.  These have already built-in tours in them and point you to the route. The former app in an audio app that lets the tour be more interactive.  Travel Planner app lets you Plan your trip between two addresses/stops.
 Locate the nearest stop via GPS.
 Trip presentation on a map.
 Price and SMS-codes.

  • 47.
    HOW CAN THEAPP BE FUNDED
  • 48.
    By following the below point’s, we can make sure that our app can be funded:  Create a Business Plan.  Know the market.  Have a Revenue model  Try and Build a Prototype OR  Elevator Pitch to an Angel Investor.
  • 49.
    BUSINESS PLAN  coverpage and table of contents  Business description  business environment analysis  competitor analysis  market analysis  Operations plan  management summary  attachments and milestones  Financial Plan  Industry Background
  • 50.
  • 51.
    The retrieval of dynamic data.  If there are supposedly more than 50 places we can’t just store it locally, the integration of a database is essential.  The adaptive learning of the app will be a task difficult to conquer.  The implementation of cost effective algorithm in the application.
  • 52.