Inspiration

While wandering towards a park with the team to get the creative juices pumping, we reminded ourselves of how fantastic it is to wander around an unknown location, discovering local gems along the way. As travellers, this idea appealed to us, as we recognise that the best way to get to know a place is on foot.

What it does

Journey will map a random route of a chosen distance past points of interest from the users current location back to that location. The route is generated by choosing random points of interest within a radius x of the last chosen point, with constraints to ensure the journey ends after around the chosen distance.

How I built it

Using Google Maps' APIs, we can extract the latitude and longitude data of points of interest within a stated radius from a stated location. They also have an API to generate a route along official paths between two points defined by latitude and longitude. Using these two APIs, we can plot our custom path along the map window displayed within our otherwise light-weight web-app.

Challenges I ran into

Our primary challenge was in designing the algorithm for planning the path. Our secondary challenge was implementing that algorithm in JavaScript with asynchronous callbacks! We also had to make sure the algorithm was implemented in such a way that it didn't overwhelm the APIs we were calling.

Accomplishments that I'm proud of

Making a working app in 24 hours! We managed to work with an API we'd never used before, programmed heavily in JavaScript which none of us were that familiar with, and created an awesome interface that's easy to use and looks good. We're all really proud of what we've accomplished.

What I learned

Programming with JS, algorithms with callbacks, CSS, using third party APIs, and teamwork!

What's next for Journey

Journey itself is a very basic webapp, however it has a lot of room to grow. Going forward, it can be enhanced by letting users filter point of interest type, for example a user might want to see tourist attractions and cafes, while another might just want pubs for a pub crawl. Another enhancement is mandatory points, so if there are destinations a user definitely wants to wander past, those can be guaranteed to be in the route. These enhancements would make the app more usable for a wider audience who have a better idea of where they want to wander.

Another enhancement is to have some sort of moderated community point of interest marker so the public can submit points of interest in their neighbourhoods. This would allow smaller, lesser known icons to be added to routes, leading to more interesting journeys as well as increasing the number of possible random walks in an area. Also, as a traveller myself, it's these smaller gems that I want to run into while wandering around a new city or even cities I've been to several times before.

The final enhancement is the opportunity for monetisation. The app currently generates a path from random points of interest with all points within a radius weighted equally. For a small fee, local businesses such as cafes and art galleries can increase the weighting of their business in the random choice algorithm, sending users their way. The fee would need to be small enough to not be a burden on the businesses sponsoring, and we would rely on economies of scale to turn a profit. It would be nice to limit the ability to sponsor to small independent businesses as opposed to the McDonald's of the world, however for initial funding one would have to include all businesses willing to sponsor until the necessary scale is achieved.

Video

https://www.useloom.com/share/c6383feb5a0a401b94efbb93faa64f49

Share this project:

Updates