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

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

Anirudh Raghavan
Current Member

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

Sarabjeet Singh

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

Ben Ripley

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

Dirksen Liu

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


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

  • 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 it to the server as an enctypted data, so we don't know what POI the users have been before. Additionally,users can remove any POIs they have been to, permanently at anytime from their device and the server. Users could give background location permission to get accurate results from the recomemndation engine.

  • 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 in any form. We use the location coordinates to get Point of Interest, which will be stored locally and in server encrypted form, so we don't know what POI the users 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.