Open Street Map based Next-Stop Recommender

About the Project

User wandering behaviours may involve many location visits in different order. The research team has proposed an algorithm which can provide users recommendation for their next visit according to the similarity of their behaviours between each others and the connections amongst locations.

Users can get this recommendation through an app, which can record Points of Interest(POI) from time to time. The app only sends hashed POI and its category (so the server in fact doesn't know what the POI the user visited at any time) as well as an unique uuid (which cannot backtrack to anyone) for the service to match the wandering behaviour patterns and provide recommendations.

This POI data helps the recommendation engine to give accurate results. The synchronization service will ensure the user always has updated offline data to ensure offline functionality. Users have complete comtrol over the data the app recorded on their behalf.

About Us

...
Dr. Maiga Chang
Supervisor

Dr. Maiga Chang is a Full Professor in the school of Computing and Information Systems at Athabasca University, Canada

...
Our Goal

Our goal is help researchers all around the world to make use of this open source code to find more innovative ways to recommend places.

Our Team

...
Jagrit Acharya
Current Member

Jagrit Acharya
is an undergraduate student of Computer Science from NMIMS bombay, India (2019-2023)

...
Anirudh Raghavan
2021

Anirudh Srinivasa Raghavan
is an undergraduate student of Computer Science from PES Institute of Technology, India (2018-2022)

...
Sarabjeet Singh
2016

Sarabjeet Singh is an undergraduate student of Indian Institute of Technology Roorkee, India.

...
Ben Ripley
(2012~2013)

Ben Ripley received a BSc degree in Computing and Information Systems from Athabasca University in 2016.


...
Dirksen Liu
(2008-2009)

Dirksen Liu (Decheng Liu) received the BSc degree in Computer Science and BA degree in English from South China University of Tech. in 1997, and the MSc degree in Information System from Athabasca University in 2009

Videos

Final Presentation
Presentation on Day 2 in the VIP Research Group's Research Outcome Webinar (VIP ROW 2021)

This research implements an Android app and a recommendation service with two algorithms to predict and make Point of Interest and PoI category recommendations for the mobile app's users according to their anonymous time-series data. The research outcome involve Android, Python, PHP, XML, JavaScript (AJAX and JSON), and Open Street Map

Stage 1
Stage 1's major tasks/features include (but not limited to)

1. anonymized device registration;
2. secure and anonymous synchronization for the visited Point of Interest (PoIs) and their categories;
3. a PoI's stay status detection;
4. local storage integrity checker and anonymous data synchronizer.

Stage 2
Stage 2's major tasks/features include (but not limited to)

1. app's configuration settings;
2. offline map requester and synchronizer;
3. Next-Stop Recommender dashboard.



Stage 3
Stage 3's major tasks/features include (but not limited to)

1. Route Recommendation algorithm;
2. Regular Expression based algorithm.

Background Location
Working of Background Location

1. Users can optionally turn on background location
2. It will detect and record POI even if users do not open the app

How To
Permission configuration for run in background (for Samsung mobile device)

When users want to enable the Run in Background feature to allow Next-Stop Recommender to access location information in background, sometimes they need to turn off the battery optimization function for the app manually. This video shows how the Battery Optimization funcation can be disabled in a Samsung mobile device.

Frequenty Asked Questions

  • No, the app will automatically self-register when it starts at the first time. When the app does device registration, only a signature and device ID generated and there is no way to back track and get idea of the device information. So your privacy is kept and your identity is still remaining unknown to anyone includes us. The detailed mechanism can be found from the above Youtube video for the presentation on Day 2 in the VIP Research Group's Research Outcome Webinar (VIP ROW 2021).

  • We are strictly against the idea of collecting user sensitive data from the device. We only collect user's POI(Point of Interest) from time to time and send its hash value to the server. It is impossible to obtain the original data from a hash value due to no matter how long (in terms of the number of characters) the original data has, the hash value size is same. It might take 5 years for a computer to brute force a hashed point of interest (see HOW LONG DOES IT TAKE A HACKER TO BRUTE FORCE A PASSWORD?) if and only if the hash method is not considering to add salt or making any alternation (see Adding Salt to Hashing: A Better Way to Store Passwords). So no one include us could know what POI you have been before. Additionally, you can remove any POIs that you have been to, permanently at anytime from your device and the server.

  • Our App has offline functionality. Whenever the device is connected to Wireless network, it can download POI(Point of Interest) data and synchronize all data to the server.

  • The app has two options for collecting users data, (1) Detecting user's location only when the app is open and (2) Detecting the user's location in the background. Users have an options to change this settings in the profile page. Moreover, even if the app is allowed to work in background, the app will not cdetect the device's location if the user's battery is below a critical level.

  • Yes, Users have an option to wipe out their existence from Profile page, all the data saved in the local device and server will be wiped out.

  • The app has two options for collecting users data, (1) Detecting user's location only when the app is open and (2) Detecting the user's location in the background. Users have an options to change this settings in the profile page

  • The app will never store your location coordinates in any form. We use the location coordinates to get the closest Point of Interest, which will be stored locally and then sent with its hashed value to the server, so we don't know what POI you have been before.

  • The app will detect the location in background if user has given the permission in profile page. This permission can be revoked by user at any point of time by turning it off in the settings page.

  • Yes, you can configure it in the profile page. Turning off background usage would mean the app will be able to detect location only when user is using it.