NaviMall - Kutay Zorbaz, Yigit Yuceturk

From CS486wiki
Jump to navigationJump to search

Introduction

Time is important for everyone. Nobody wants to loose their precious time while trying to find a store in a mall. For this reason, we decided to develop an android application in order to decrease that time. All you need is touching your NFC compatible android phone to the nearest NFC tag which is located on walls. Your smart phone will know where you are and give you the shortest path to desired store in the mall.

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.

  • 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

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 Output for Route (G1 -> F):

- Go to East on Front St. 30m

- Turn South on Seminary St.

- Destination is on your right after 70m


  • Example Output for 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.

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 programming NFC tags.

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

Project Design

First, We will convert the floor plans of shopping malls to edge-node diagrams as we showed above. Then, we will prepare text files that include adjacent nodes and their edges' length information. In order to detect the shortest path from source 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 the algorithm. That's why we prepare text files to present to the 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			G2
7			7
1 "Holister"		1 "Holister"
2 "Adidas"		2 "Adidas"
3 "Nike"		3 "Nike"
4 "Victoria Secret"	4 "Victoria Secret"
5 "North Face"		5 "North Face"
6 "Timberland"		6 "Timberland"
7 "Burlington"		7 "Burlington"
2,1,70			2,1,70
2,3,150		        2,3,150
1,4,70			1,4,70	
4,3,140		        4,3,140
4,5,118		        4,5,118
5,6,10 		        5,6,10
6,7,70			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.


User Requirements

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

Project Plan

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

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

12/16/2015 - Getting used to use Android Studio, 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 - Coding

03/09/2016 - NFC Tag Programming, NFC Integration

03/23/2016 - NFC Testings

04/06/2016 - Potential Prototype 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