NaviMall - Kutay Zorbaz, Yigit Yuceturk

From CS486wiki
Jump to navigationJump to search

Introduction

NaviMall is an android application project in order to find and show the shortest path to a desired store in a mall for users. This application is more useful in big malls like Destiny USA or Woodbury Outlets. Via the NaviMall application, users will be able to see the list of stores in a mall, and find out the route to get there quickly.

Description

When a user come into a mall, he/she goes to NaviMall application. First, user touch his/her NFC supported android phone to the NFC tag located on entrance to get floor plan. Then the user walks forward to one of nearest NFC tags, which is located on the wall in every 10-20 meters spaced. When a user connect his/her android phone to the NFC tag, the location information on that NFC tag will be automatically sent to the android phone. Location information includes the point of location node, for example "2 B". "2" represents the floor number, and "B" shows the point information at that floor. After a successful connection, user selects a store from the list. Android application will read the location information, and then process it with A-Star shortest path algorithm. We have assigned street names to passageways, in order to give best directions for users.

[[Example Route (G1 -> F):]]

- Go to East on Front St. 30m

- Turn South on Seminary St.

- Destination is on your right after 70m


[[Example Route (G8 -> B):]]

- Go West on Oak St. 30m

- Turn North on Seminary St.

- Destination is on your right after 60m

Roles and Responsibilities

Java Android Application Developers: Kutay Zorbaz, Yigit Yuceturk

Development Platforms, Technologies & Tools

Java, XML will be used while programming android application.

Firstly, We will convert floor plans of each shopping mall to edge-node diagrams as we showed above. Then, we will prepare text file that includes adjacent nodes and their edges' length information by looking edge-node diagrams. To detect the shortest path to desired destination, Dijkstra algorithm technic is going to be used in our Java Android Application program. We need to embed our floor plan to algorithm for calculation. That's why we prepared text file to present to algorithm which nodes are adjacent and which nodes aren't. Dijkstra Algorithm will read the necessary information from text file and create a floor plan map for its calculation. Our NFC tags will have mall's floor plan information as a text like that:

G10
7
1 "Holister"
2 "Adidas"
3 "Nike"
4 "Victoria Secret"
5 "North Face"
6 "Timberland"
7 "Burlington"
2,1,70
2,3,150
1,4,70
4,3,140
4,5,118
5,6,10
6,7,70


Add lane function will create relationship between nodes.

addLane("Edge_0", 2, 1, 70)
addLane("Edge_1", 2, 3, 150)
addLane("Edge_1", 1, 4, 70)
addLane("Edge_1", 4, 3, 140)
addLane("Edge_1", 4, 5, 118)
addLane("Edge_1", 5, 6, 10)
addLane("Edge_1", 6, 7, 70)
private void addLane(String laneId, int sourceLocNo, int destLocNo, int duration) 
{
	Edge lane = new Edge(laneId, nodes.get(sourceLocNo), nodes.get(destLocNo), duration);
	edges.add(lane);
}


After the creating of map in our algorithm, We need to detect that where we are (source point) from NFC's in shopping malls and where we want to go (destination point). Then, application will calculate the shortest path and start to navigation information to arrive desired point.

Project Design

Hardware and Software Interfaces

  • Android Studio with Android SDK for Java Development
  • NFC Writer by Tagstand android application for writing data on NFC tags

Tagstand Writer allows program NFC tags.

  • NFC NTAG213 chip, with 144 bytes of available user memory.


User Requirements

  • Application users can see the list of stores in a mall.
  • Application users can get the shortest path to a desired store.

Used Frameworks

  • Mapkit.framework, CoreLocation.framework, Foundation.framework, CoreGraphics.framework, UIKit.framework
  • Category: Navigation
  • Application Size: ---
  • Language: English
  • Compatible with: NFC compatible Android Phones
  • Requirements: This application requires NFC connection to retrieve data from the NFC tags

Project Plan

11/17/2015 - Establish Requirements, Project Plan, Sample Presentation

12/02/2015 -Design- User Centered Design Approach

12/16/2015 - Begin Implementation

12/30/2015 - Coding

--- End of Semester ---

01/27/2016 - Layout of Android Application

02/10/2016 - Adding Additional Features

02/24/2016 - NFC Integration

03/09/2016 - NFC Tag Programing

03/23/2016 - NFC Testings

04/06/2016 - Potential Prototyped Finished

04/20/2016 - Finalising Code

05/04/2016 - Evaluation of Finished Code

05/11/2016 - Test

05/18/2016 - Final Report Hand-in and Presentation