We were inspired by the conversation we had with one of the Kensho developers. He told us about how he studies the correlation between seemingly random pairs of events and the stock market--this led us to ask the same question but in a more physical sense. We wondered: what are the similarly random patterns for a person in his day to day travels

What it does

The app serves two purposes--one for the consumer and one for the business owner. Foremost, the user can see which places or being actively visited based on other user's activities--these are the "hot spots". Furthermore, the user can also look at each business's most common successor--where an average user will most likely go to next--in order to gain valuable suggestions on new points of entertainment or businesses. From a business owner standpoint, he can see the quantitative results of the net user population on the website in order to track the flow of his customers. This will allow a business owner to change practices based on the tendencies of his customers.

How I built it

The app was built for iOS in Swift. It regularly posts the users location to a Node server that triggers MongoDB queries. Also, the app requests a general lay of the land when first starting up where it makes a get request to the Node server to get 18 points of interest nearby. These 18 nearby points are found through the Google Maps API. All of the "hotness" data and closest neighbor suggestions on the app stem from this API get request. Finally, the website uses other API endpoints to get basic data in order to plot an undirected graph.

Challenges I ran into

The implementation of getting data from google was somewhat sloppy. This, along with the fact that we needed to make a high volume of requests, led to occasional max outs on the Google Maps API limit. Constructing the graph also proved to be quite challenging. Finally, creating mock data was horribly tedious do to the close relationship between the data--an SQL DB would have worked much better. (PS: This did not need ASYNC JavaScript)

Accomplishments that I'm proud of

The interface of the app looks very professional and clean, and the concept seemed to legitimate.

What I learned

We learned that the typical MEAN stack (or its other expressions) may not always function the best. For example, a PHP + MySQL combination would fulfill the role much better; however, we were limited in the fact that our best iOS dev is also our best PHP dev. On a more specific note, we learned that Google's Map API can only make 20 requests at one time. This highlights the important of designing smart algorithms that minimize http requests.

What's next for HotSpot

We would like to implement this on a large scale where the number of business is not limited. We believe this will do the best job of answering our initial question of whether or not patterns exist for a person in his day to day travels because most people move farther than a small, multiple block radius. Also, some notion of machine learning could benefit the analysis of this data for the business owner substantially.

Share this project: