Being a Pub Crawl organizer and participant, I always noticed that making routes for 15 teams and 10 stops is a tedious task.

What it does

Pub Crawl Planner automates the route generation for a multi-team multi-stop pub crawl.

How we built it

We used pure javascript and a couple javascript libraries. There is no server-side code. The UI uses materialize-css to adhere to the Material Design stardards. We also use the Google Maps API to provide autocompletion for the locations and to compute the distances between the different locations. The route planning algorithm translates the problem in a boolean expression and solves it using logic-solver, an excellent boolean SAT solver. Finally, the PDF report is generated on the client-side with PDFKit.js .

Challenges we ran into

We had a hard time setting-up our NPM-Typescript-Webpack stack and ultimately decided to drop it for vanilla Javascript. It also proved to be very hard to generate a pdf on the client-side using Javascript, but we managed to do it.

Accomplishments that we're proud of

  • The UI is beautiful and user-friendly. The Autocomplete feature from Google Maps is well integrated.
  • The core algorithm is able to generate routes efficiently even for a big problem-size.
  • The pdf generation is fully done in Javascript on the client-side

What we learned

We learned than managing dependancies through NPM in a Typescript project using Webpack isn't as easy as it seems. Thus, we decided to drop all of those dependencies and used vanilla Javascript instead to fit the 24h time frame.

What's next for pub-crawl-planner

  • More options for the user (maximum amount of teams per pub at a time, minimum time spent at each pub)
  • Prettier pdf generation
  • Better error catching
  • Encode parameters in the URL
  • Include an itinerary from Google Maps in the generated PDF

Built With

+ 11 more
Share this project: