Inspiration
A stolen bike and a dismal walk home in the rain—oh yeah, don’t forget to add in a full bladder too. This was what led one of our team members down the rabbit hole of finding something to alleviate said full bladder, all while avoiding the area where the poor bike lost sight of its owner. For obvious reasons, of course.
As natural of an instinct as it is, we can’t pee in bushes. No, that would call for an awkward conversation with a police officer and an even awkward-er staredown with the stranger who’s bush you just defecated in. What is one to do when they just have to go but no map exists for toilets AND they don’t want their bike to be stolen? Our team member became obsessed with trying to find the solution to this issue so, as to honor that obsession with crime and toilets, we created Soteria, named after the Greek goddess of safety and deliverance from harm.
What it does
Similar to the Google Maps feature that lets you find restaurants in your area, Soteria helps you find crime spots to avoid, as well as places with restrooms so you can happily relieve yourself. Rather than following the shortest path to their destination, our project emphasizes the safest, as we understand that streets and roads oftentimes leave you feeling anxious. In addition, we used an API (REFUGE) with data for gender neutral restrooms, which are indicated by the rainbow hearts.
How we built it
We began with creating a design prototype on Figma to get some sense of direction as to what we wanted the layout to look like. These elements, like the color scheme and icons, helped us figure out the general design so that we can switch over to implementing it using HTML/CSS and JavaScript.
We used Leaflet, a JavaScript library for interactive maps, to implement our map. We also made API calls to the United Kingdom’s crime database and REFUGE in order to generate our map’s markers.
Challenges we ran into
- We initially started off with using Flutter (UI software toolkit) with Dart (programming language), but found that we were unable to get it to work within the time constraints of the hackathon, soooo we switched over to HTML/CSS and JavaScript :D
- Figuring out how to implement route finding and how to handle asynchronous API requests in JavaScript
- We initially used Open Layers for our map, but we found it incredibly difficult to use. After some careful researching, we made the switch to Leaflet
- It was also a challenge ensuring that markers were removed and reloaded whenever a user navigated the map to avoid crashes
- Finding free-to-use APIs that provided coordinates of restrooms and crimes
Accomplishments that we're proud of
That it works!
Although an obvious feat and accomplishment, we were rather proud of our working prototype, despite its simplicity. Being able to work around our initial issues of formatting and then figuring out how to display our icons were accomplishments in and of themselves.
What we learned
- That sometimes we can do more in 6 hours than we’ve done in 3 days
- We learned how to make HTTP requests in JavaScript!
- How to make a prototype using Figma!
What's next for Soteria
- Make it more optimized for all cities
- Use more crime databases from different countries
- Add a machine learning algorithm that is able to find the most optimal path to the nearest restroom, ensuring the safest path that avoids crime.
- Turn our Figma prototype into a real app with Flutter and Dart



Log in or sign up for Devpost to join the conversation.