A Cloud in a Brainstorm ☁️

Our Inspiration

No one knows better than people from Toronto that it takes less than a block for city streets to change from "safe" to "sketchy". Whether it's in broad daylight or the dead of night, some areas just aren't safe. Google Maps has a feature that tells you which roads are currently congested with traffic, calculated by drawing data from users-- so we extrapolated this idea to create an app that tells you which areas other people consider unsafe, by taking in user-submitted data.

Warn and Be Warned 📍

What it does

Streetlight lets users place markers on specific areas and neighbourhoods they deem to be unsafe or sketchy, and also lets them see the markers that everybody else places. When placing the marker, users are also asked to rate the area based on their safety level. We wanted to make an app that helped women help women-- the foundation of the app relies on (perhaps a little optimistically) the fact that people care about other people's safety. As users contribute data, others become more and more informed about which streets they might want to avoid when walking.

The Secret Ingredients 🧑‍🍳

Our Tools and Technologies

We knew from the start that a mobile app was the only way that this app would be truly useful. The issue was that all of our members' experience was almost exclusively in web development. Despite this, mobile was clearly the best platform for our idea, and we decided to take on the challenge.

We used Javascript as our language, React Native as our framework, and Expo Go to allow us to see it in action. We used Firebase to store all user data, and a bunch of React APIs, including Reanimate and Maps.

1 step forward, 3 steps back 👣

Challenges We Encountered

Getting started was the hard part. We kept debating between which databases to use, which frameworks, which Maps API-- it wasn't until late Saturday morning that we confirmed our tech stack.

But after that? Well, everything was a challenge. From getting both our backend and frontend set up, then integrating them, experimenting with user interactions, choosing fonts and colour schemes-- everything included a LOT of research, reading, video watching, and trial and error.

With the help of coffee, snacks, and Stack Overflow, we managed to get it to a place we deemed functional. There's always more to be added, but in a short timeframe, we're proud of what we got done.

Mom, look, I'm on TV! 🗣️

What we're proud of

We learned a lot in a short amount of time. From skimming through pages and pages of documentation to watching Youtube tutorials in 2x speed, the amount of information we consumed in the past 36 hours is probably about 3 weeks worth of our class lectures. We designed a logo with pen and paper (aka an Apple Pencil and an iPad, but still), going through half a dozen iterations. We used tools and technologies we had never used before, and managed to get a functional app working. If anything, building an app in 36 hours is something we're already pretty satisfied with.

Oh, so that's what that does! 🧠

What we learned

How to use React Native. How to use React Native Maps. How to use APIs. How to use React Native Animations. How to use Expo Go. How to design a good logo. How to use Firebase. How to NOT push git commits from 4 people at the same time. How to resolve merge conflicts. How we should comment our code so other people know what we're doing. How we should NOT put 400 lines of code in one file.

There's a light at the end of the tunnel 💡

What's next for Streetlight

In the future, we hope to make Streetlight a fully-fledged app complete with even more features. Ideally, this would also have the ability to create suggested routes and navigation tips based on "danger areas". Furthermore, although data can already be shared between users, Streetlight could have user logging to allow users to save their preferred routes. For as much as we got done, there's about two times more we can add. Perhaps someday we'll make it a truly downloadable and usable app for the public.

Built With

+ 1 more
Share this project:

Updates

Submission history