Inspiration

Britain has witnessed a somewhat partial demise of the humble boozer since the 1980s. Tavernstalk aims to get people out of the house, walking about and socialising while revitalising this industry. In particular, we wanted to focus on the following points!

  • Planning a Pub Crawl is tricky! Especially when you don't know how safe the area is.
  • Leverage some classical computer science techniques to generate and rank 'crawls'.
  • Degrade a fun, sporadic social activity into a graph optimisation problem, then solve it.
  • Present all of this on a lovely website, and make it usable for the everyday taverngoer.
  • Make the optimisation function invertible (this is merely an instance of dark humor)

Something Different!

Tavernstalk offers the user a distinct choice instead of simply assuming the user wants to remain safe. Tweaking the parameters allows the algorithm to suggest dangerous routes, leading long walks through high crime areas to shady pubs and taverns - aptly named the Warriors Walk.

However (and more usefully) we also generate the safest pub crawls based on data obtained via the Police API (yes this exists), named "The Peacekeepers Path".

What it does

Solves a parameterised routing problem to balance pub quality, walking distance between pubs, nearby crime rates and presents this to quick-witted townsfolk in a medieval fashion...

  • User enters a starting area, and some of their preferences.
  • The algorithm pulls local pubs, routes from Google Maps and crime data from the Police API (this is a real thing).
  • Calculates feasible routes then uses some heuristics to filter down the search space.
  • Presents the crawl back to the user, with information about the pubs along the route.

How we built it & Challenges

This was our first time leveraging the traditional hacker weapon of react frontend, and flask backend - neither of which we are familiar with. This was interesting, we got to learn a lot, particularly about CORS, which was stupid. We used Mapbox for presenting the geo-data, with networkx being used for mid-development backend workings.

  • Mapbox doesn't like you having multiple Map instances in an application - which we assumed would be okay. We had to refactor the application from Midnight to 7am to work inside of a singular page - managing state internally.
  • This led to being thrown in at the deep end of State Management in React at the delirious hours of the morning.
  • We also faced problems with calculating optimal routes in finite time, but used some simple rule based heuristics to cut down the solution space (i.e. minimum route length & maximum route length).
  • Google Cloud Functions are a pain, particularly when setting up CORS in a Flask environment. We had the server up and working to go public, but sadly had to switch to a local copy due to issues with CORS.
  • Devpost was also a pain, this is the 3rd time I am writing this. My next project will be Autosave for Devpost.

Accomplishments that we're proud of / What We Learned!

Learning React/Flask was fun, and well overdue. We're not too sure how much we will use these frameworks, but it's always handy to know. Additional accomplishments include:

  • This was Alex's first hackathon! He said he had fun and is happy with the project - so that's great!
  • We were able to go on a pub crawl adventure (user test, see our video), to test the algorithm! This was great fun and proved the algorithm can generate routes that lead to a fun time. The alcohol in our bloodstream did not help with late night debugging however...
  • Happy to see people interacting with the site, and how accurate the algorithm is at predicating pubs. Setting it up in our hometowns was certainly interesting.

What's next for Tavernstalk

We'd like to get the website working publicly and keep working on it.

Built With

+ 2 more
Share this project:

Updates