Inspiration

As we leave our house for routine tasks, we realize that though there are many systems in place to get from point A to point B, the number of people we may interact with on the way there is vitally important. Especially in the age of covid-19, anyone who uses public transportation deserves to know the risks and what they can do to minimize that risk, as we cannot expect them to stop using public transit.

What it does

Our web app takes in one or more destinations, along with a starting point, then creates the most efficient route to said destinations, similar to mapping technology. However, we also provide in-depth data analysis to depict the estimated amount of interactions with others within public transit, how much time is spent with people along the public transit route, along with how many people you could expect to be around on an hourly scale, and not only that, the ability to breakdown a route to segments, to see the risk of going a certain route at any hourly interval.

How I built it

The website infrastructure was all made using Node.Js and Express. Our backend was pure JavaScript and we communicated between the frontend and backend using socket.io. Our main "claim" to fame is out *Public Transit population graph, which we achieved by using HERE's Traffic histogram as we deduced that larger traffic sizes at a given hour implies the existence of more people using the public transit. We used HERE's APIs in a multiple of other places:

  1. Map: Our map (and its style) was created using HERE's Map API
  2. Route: Our route matching was created using HERE's Route API
  3. Public Transit Route: Our public transit route was created using HERE's Public Transit API

Given more time we would have liked to create a proper backend using Django and use NLP so that we could accept a wider range of inputs into our destination function.

Challenges I ran into

A big issue we ran into was making sure that we all didn't commit onto of the same files, as we ended up having to manually sort through a bunch of pull requests which used up a great deal of time for everyone. We also found that while using APIs in conjunction to functions, its sometimes difficult to make the synchronous as we had some issues beforehand of lists being out of order because of it.

Accomplishments that I'm proud of

All of the group members ran into a plethora of problems, whether it be design issues, syntax errors, errors in the code, etc. However, we overcame them all either through teamwork or by ourselves, and that team synergy, along with the final product, is what I'm most proud of. Each problem that seemed difficult to solve slowly got fixed through our problem-solving skills, and when those were lacking the other group members were there to support one other. This made for one of the best hackathon experiences, one with seamless cooperation and determination.

What I learned

I think that I learned a great deal, as this was my very first hackathon. While I did have some coding experience, only the fundamental concepts and some shallow knowledge of the programming languages used were applied, while everything else was quickly applied after learning it. This was a fantastic experience as I got to see both back end and front end coding, as well as how they communicate with each other and the entire system as a whole.

What's next for SafeWay

There are a plethora of extra implementations that we could add to SafeWay. For example, we can make a list of instructions to get to your destination, just like a GPS. By making it into a pdf, the user can print out the instructions to get to point B that much easier. We can have the user specify which route/transit they want to use, by giving them a range of all possible options to get to point B and having them choose which route to calculate for. A final functionality is a finalized set route that takes into account the distance/route, along with a time that is most optimal where public transit is not congested so that minimal contact is made, and multiple side suggestions as such so the user can pick from a variety of routes to follow that all have minimal human contact.

Share this project:

Updates