{"id":25517769,"url":"https://github.com/tobybenjaminclark/tavernstalk","last_synced_at":"2026-01-25T12:31:35.058Z","repository":{"id":276459398,"uuid":"929340728","full_name":"tobybenjaminclark/tavernstalk","owner":"tobybenjaminclark","description":"🍺 1st Place at Royal Hackaway v8! Medieval, crime-aware taverncrawl optimisation and routing.","archived":false,"fork":false,"pushed_at":"2025-02-09T12:13:01.000Z","size":7221,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-23T13:41:45.850Z","etag":null,"topics":["optimisation","routing-algorithm"],"latest_commit_sha":null,"homepage":"https://devpost.com/software/tavernstalk","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobybenjaminclark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-08T10:16:17.000Z","updated_at":"2025-02-10T10:41:43.000Z","dependencies_parsed_at":"2025-02-09T10:29:34.994Z","dependency_job_id":"effdbba3-db6d-49d3-970f-26835a91bb99","html_url":"https://github.com/tobybenjaminclark/tavernstalk","commit_stats":null,"previous_names":["tobybenjaminclark/pintcrawler","tobybenjaminclark/tavernstalk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tobybenjaminclark/tavernstalk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Ftavernstalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Ftavernstalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Ftavernstalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Ftavernstalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobybenjaminclark","download_url":"https://codeload.github.com/tobybenjaminclark/tavernstalk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Ftavernstalk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["optimisation","routing-algorithm"],"created_at":"2025-02-19T15:37:32.252Z","updated_at":"2026-01-25T12:31:35.035Z","avatar_url":"https://github.com/tobybenjaminclark.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"Tavernstalk - A Pub Crawl Planner with a Twist\nInspiration\nBritain 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:\n\nPlanning a Pub Crawl is tricky! Especially when you don't know how safe the area is.\nLeverage some classical computer science techniques to generate and rank 'crawls'.\nDegrade a fun, sporadic social activity into a graph optimisation problem, then solve it.\nPresent all of this on a lovely website, and make it usable for the everyday taverngoer.\nMake the optimisation function invertible (this is merely an instance of dark humor).\nSomething Different!\nTavernstalk 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.\n\nHowever (and more usefully) we also generate the safest pub crawls based on data obtained via the Police API (yes, this exists), named \"The Peacekeeper's Path\".\n\nWhat it Does\nTavernstalk 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:\n\nUser Input: The user enters a starting area and some of their preferences (such as rating of pubs, walking distance, and safety level).\nData Gathering: The algorithm pulls local pubs, routes from Google Maps, and crime data from the Police API (this is a real thing).\nRoute Calculation: The system calculates feasible routes, then uses some heuristics to filter down the search space.\nResults: It presents the best pub crawl back to the user, with information about the pubs along the route and their safety ratings.\nHow We Built It \u0026 Challenges\nThis was our first time leveraging the traditional hacker weapon of React frontend and Flask backend – neither of which we are familiar with. This was an exciting learning experience, and we got to learn a lot, particularly about CORS, which was quite the hurdle.\n\nWe used Mapbox for presenting the geo-data, with NetworkX being used for mid-development backend workings.\n\nChallenges\n#1 Challenge: Devpost does not autosave, nor does it save when clicked (this is the third time I've written this 😤).\n#2 Challenge: Handling multiple maps and managing state effectively.\n#3 Challenge: Finding efficient routes within finite time constraints due to complex calculations.\nAccomplishments We’re Proud Of \u0026 What We Learned!\nLearning React and Flask: This project pushed us out of our comfort zone to learn a new stack, and it was incredibly rewarding.\nReal-life Application: We were able to go on a pub crawl and see how the algorithm works in practice.\nUser Engagement: It's amazing to see people interacting with the site and enjoying the algorithm's recommendations.\nAccuracy: Setting it up in our hometowns was a unique experience, and it was satisfying to see the algorithm accurately predict the best pubs and routes.\nWhat’s Next for Tavernstalk?\nBetter User Experience: We aim to further improve the frontend with a more intuitive interface.\nEnhanced Data: We hope to integrate more detailed pub data and expand crime data for even more accurate recommendations.\nAdditional Features: Possible future features include adding the option to customize routes based on drink preferences, weather conditions, or even event-based crawling.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobybenjaminclark%2Ftavernstalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobybenjaminclark%2Ftavernstalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobybenjaminclark%2Ftavernstalk/lists"}