Inspiration New York has such a fast paced lifestyle and almost everything is at your fingertips, except for some of the most essential things - publicly accessible restrooms and water. Interestingly enough, as my colleagues and I were making the trek from Staten Island, one of us had to use the bathroom and simply could not find one. This app is designed to show user's all the local public bathrooms and water dispensing stations from their current location. Once the page loads, it then actively tracks the user as they roam throughout the city and constantly updates their location. The map pins appear as one of three colors, either red, yellow or green, signaling to the user the quality of the bathrooms and the water stations based on community input. If the user is searching for a water fountain, the app displays the exact location of the fountain to an extreme level of accuracy with specific outputs such as "in playground," "under tree, near ballfield, just outside playground," or "out in the open." This allows users to maintain the pace of the New York City lifestyle, not wasting a second of time to try and find a water fountain. In addition to being advantageous to the NYC lifestyle, it is also has the potential to positively impact the environment. The fountains serve as water bottle refill stations and allow users to reuse their bottles as oppose to buying a new one. The restroom aspect of it does everything the water tab does with even more features for everyone. The app can specify whether water stations and restrooms are handicap accessible. Once they select their desired location, the app provides multiple direction routes to the station. After the user uses either one of the services, they will be sent a push notification to supply feedback rating the service 1-10 which will give more accurate ratings for other user's in the future.

how we built it We built the app by learning React-Native/Redux, querying and building SOAP, CRUD, and RESTful APIs through using the MERN ( Mongo DB, Express, React-Native, Node.js) stack. To gather all of our data we used New York's largest open data source - NYC Open Data, and to store our user's Ratings in a CRUD API using MongoDB Atlas Clusters. We chose an essentially JavaScript only work environment because of its ability to cover all sides of a project, Front-End to Back-End. We also used Adobe Photoshop to design a lot of our graphics, mockups, and flowcharts/schematics.

Challenges One of the biggest challenges to overcome was being at our first Hackathon and feeling like a small fish in a big sea. On the technical side, a challenge of ours was being able to build an effective interface that will serve iOS and Android users, which is why we employed Expo on top of React-Native to allow for an easy integration of sensors and more, that would then be cross-platform. Another challenge was coming up with an effective Collection/Document Schema for storing user's Ratings. Furthermore, we learned how to construct out the Redux store to keep our application and state management separate.

Accomplishments Throughout this project we accomplished many things from better version control, workflow management, and planning. The biggest accomplishments, in terms of milestones, were digesting all of our API data and deconstructing the JSON objects to be rendered on the Map in the application. Another big accomplishment is gaining experience.

What I learned From this experience, our team gained a much more effective mindset. We developed a sense of what it is like to work on a team, rather than alone. Working on a team is something we expected to be a lot easier, but we had to learn Git, how to keep in constant communication, and divide work into respective and logical steps. We learned how to take our projects and work on separate aspects in a way where it can all still be brought together in the end. We learned a lot of useful team-building and career-oriented skills that will definitely reach far beyond this Hackathon.

Whats Next We have many big plans moving forward for "In a Hurry." One of the first things we want to do is to directly report to 311 if either a restroom or water fountain is not available or functioning. Another possible alternative would be to make a web application so people can use the service without having to download the app. The app also has the potential to report whether a bathroom has a baby changing area based on user feedback. Lastly, if the user won't give the server access to their geo-location, it will ask for a ZIP Code to display the services in that area.

Share this project: