In the swisscom workshop we learned about new APIs namely the traveltime API which made us think of common use cases. Spending nights out with your friends was one of the first things that came to our mind as we ourselves sometimes would like that such an application exists. It could also be useful for business meetings.
What it does
It allows everyone to create groups (without signup up, doodle-style), share a link with friends to join and then get recommendations based on where everyone comes from (location) and how they want to arrive (means of transport). The maximum travel time is set for the whole group as it would be unfair if someone had to travel much longer than others.
How we built it
Using the travel time API we retrieve reachable areas for a given starting location and given means of transport per user. The intersection of this area marks the searchable area. We then calculate the smallest enclosing circle of the intersection in order to submit it's center and radius to the google maps API where we retrieve the venues for the given categories (bar, cinema, ...). These are then shown to the user.
The frontend was built in react, the backend in node.js and the communication is done using graphql.
Challenges we ran into
The short amount of time was a real challenge. First we had to read what all the suggested APIs can do, then think of what we want to do and then of course implement it. Fixing some smaller programmer errors also cost some time. Also not all group members were used to the technologies used and thus had to read some documentation.
Accomplishments that we're proud of
We got it working in time!
What we learned
A whole lot about available APIs and also some smaller coding practises used by others.
That depends on how it will all play out. As it is a project we would use ourselves, we would like to get it online as well but as the APIs aren't free to use after the hackathon we have to see if someone's willing to take that risk or if we find another solution.
Only images from the frontpage as the API keys aren't valid anymore :(