Inspiration
The idea for Speedbump came about on a brief car trip up to UMBC. We started our journey brainstorming for ideas. Big words were thrown out such as “network security”, “internet spheres”, and “Fourier transforms”. Slowly, but surely, we arrived at the conclusion that people needed fast internet, and numerous variables could degrade internet speeds. When your internet goes down, where do you go? With Speedbump you’ll know where to go.
What it does
Speedbump is a real time globalized internet speed checker. It is a web app that logs your internet speed as soon as you visit it. It will check your current internet speed, as well as the internet speeds of other locations reported by users in that location.
It was built with usability in mind. There are no login screens and no user information registered. We just want your internet speed.
How we built it
Speedbump is composed of two components, a database and a frontend website. We used Javascript, html, and the Google Maps API for the web pages, and Firebase as our backend. Upon visiting the site, Javascript runs a speed check and takes coordinates of your location. Using Google Maps’ geocoder, we find the address associated with your coordinates. The address and speed are both uploaded to Firebase. The second page of the app features a Google Map that displays nearby internet speeds to the user’s location.
Challenges we ran into
At first we wanted to use a python script to run the speed test, but later realized that it would not be possible to run the script client side. Figuring out how/what data to store in Firebase was difficult. We narrowed the information down to just the necessary components: bandwidth and location. Another challenge was figuring out how to associate multiple speed reports from users in the same building to just one marker on the map. If we uploaded the exact coordinates of every user to Firebase, the app would report multiple speeds in one location. Instead we used Google Maps’ geocoder to associate coordinates with an address, and then calculated a moving average of the most recent 10 speeds associated with that address. Debugging in general was very painful.
Accomplishments that we're proud of
We’re proud of our resilience in the face of difficult bugs and difficulties. There were numerous conceptual challenges we had to address such as scalability and the entire infrastructure of our web app.
Log in or sign up for Devpost to join the conversation.