Description as a Tweet:

Don't be a damsel in distress or a dude in danger! SafeStride is here to help you channel your inner superhero. Stay safe in any situation. Let's save the day together! 🚶‍♂️💪

Inspiration:

In today's world, safety is a crucial concern for everyone. With increasing incidents of accidents, thefts, and other crimes, people are always looking for ways to stay safe. As college students, many of us are out late at night, and admittedly, not in the right state to be able to safely walk back to our rooms alone.

Without a doubt, we need to find a way to make sure everyone can get home safely. With the advent of this digital age, we developed an application to tackle this problem.

What it does:

In a world where walking alone can be dangerous, SafeStride aims to provide stridees (a lone walker) a safer journey by pairing them with a strider (a companion) on their walk.

Disclaimer: All users are prompted during their registration process to enter the contact information of a trusted contact, for safety reasons. When a user begins a walk with their companion, the user’s trusted contact will be emailed information about the user’s companion in case of any emergencies.

Full Flow:
Suppose John, a user, is searching for a companion. He is shown a map and can search for and select his destination. Once selected, an alert will be sent to all users within one mile of the John’s current location. These other users who received an alert will see a description of John’s request, which displays John’s current rating as a user (a rating out of 5 stars which is an average of how previous companions of John’s rated him) as well as his current destination. If they decide to accept the request, then John will see a list of all users who accepted his request along with their respective ratings, and decide to accept one of them as a companion. Upon accepting each other’s requests, John will have an OTP on his screen while John’s companion, suppose his name is Jack, will be prompted to enter the OTP. Jack will be given John’s current location and has to navigate to him (an in-built redirect to Google Maps is available) in order to meet John and get the OTP. Once the OTP is entered, the two officially begin their trip, and a direct walking route to their destination is drawn on the map (again, a Google Maps redirect is given). Once they reach their destination, John or Jack must end the trip by clicking the ‘end trip’ button, which will prompt them to rate their respective companions on the trip. Ratings are based on three different criteria:
1. How safe did you feel? (1-5)
2. How comfortable were you? (1-5)
3. Would you recommend (the companion)? (1-5)
The average of these ratings is taken, and averaged with the respective user’s current rating to keep an updated rating for all users. After submitting your rating for your companion, the user is brought back to the dashboard where they may search for a new destination again.

How we built it:

Building SafeStride required a methodological process of planning and perfecting the idea, designing the user interface and experience, and finally turning our ideas into code. Communication and consensus among a large team of eight people was key to our success, while each of us contributed our best in each of our areas of expertise. The first step involved ideating and planning out how exactly the app would work, and using Figma to design the different screens required for the app. Once we had a framework for every aspect of the app, we began coding. The mobile-first map-based web application required extensive use of HTML, CSS and JavaScript, including technologies like the MapBox API, MongoDB and Node.js.
Visual Studio Code was used to turn our Figma designs into HTML, structure of the app and CSS for adding designs. The most important details are that the MapBox API was used to render the map and draw a navigation path between the location of the stridee and their destination, MongoDB was used to store the user's name, email and password, Socket.io was used for real-time notifications and the web app was hosted on a Node.js server on replit.com. Nodemailer was used to send emails with the OTPs for authentication. Finally, since reliability of any app is important, we debugged and tested the app on multiple devices and different conditions to prevent edge-case bugs.

Technologies we used:

  • HTML/CSS
  • Javascript
  • Node.js
  • Express
  • Misc

Challenges we ran into:

Our team ran into many issues during development, but the most significant challenges we had to overcome were those of integrating the MapBox API and creating a rating system for users.

Although we have used MapBox in the past, we ran into issues this time around because we had to hard code some very specific functionalities that were not built into the API, so polishing the map features was a big hurdle. Additionally, with the possibility of users being complete strangers to each other, we wanted to give users a numerical rating for their reputation that would give stridees and striders a sense of comfort with their walking companion. A 5 star rating system solution was obvious, but implementing it was far less straightforward. After lots of debugging, it was very rewarding to see everything working as intended.

Accomplishments we're proud of:

From our team’s experience in a previous hackathon, we were proud to have improved our collaboration skills, have more productive debates, and managed to work much more efficiently, allowing us to develop a larger final product. As freshmen, with a lot more to learn in the coming years, we felt far more prepared for Hack(H)er413.

We are very happy with our final product. Specifically, we are very proud of our rating system as while it seemed simple, a lot of work went into its implementation. It was very fulfilling to see that we were able to make everything look and function exactly how we wanted it.

What we've learned:

Plan Early: Planning the features of our app early on paid off in the long run. This preparation saved us lots of valuable time we needed down the line for extensive research and debugging sessions.

Communication: Working in a large team, trying to keep track of and manage everyone was a little tricky. Dividing the work among us while having consensus on important decisions and brainstorming ideas helped us improve our leadership and teamworking skills, ultimately improving our efficiency significantly compared to our last hackathon.

What's next:

We are breaking the future of SafeStride into three major phases. During phase 1, we want to roll out the app exclusively to UMass students. In order to achieve this, we would work with the UMass Police Department and the relevant services to successfully launch SafeStride. In the next phase, phase 2, we want to implement new features. We wish to add a chat feature in order to make communication more streamlined and easier through the app. Another feature would be to add a ranking system using the ratings of striders and then gamifying it. Lastly, in phase 3, we would release SafeStride to more college campuses. To do this, we wish to work with the 5 colleges in the UMass Five Colleges Consortium to bring our app to them before a nationwide release. We would start by analyzing map data from the colleges and implementing our features with the campus' facilities and also working closely with the respective IT and campus police departments for the most accurate and best outcome.

Built with:

HTML, CSS, JavaScript, Node.js, Express.js, MapBox API, Socket.io, Nodemailer

Prizes we're going for:

  • Best Software Hack
  • Best Hack for a Healthier Happier World
  • Best Pitch/Demo
  • Best User Experience / Product Design Hack

Team Members

Sumrudhi Jadhav
Sagnik Pal
Anshul Saha
Shoubhit Ravi
Tanush Savadi
Rishabh Devnani
Aadvik Mishra
Shaswat Ganisshan

Table Number

Table 37 (TBL)