Inspiration

Baltimore’s roads are failing the people who rely on them every day. According to a report by the nonprofit TRIP, drivers lose more than $3,000 a year because of deteriorating roads, traffic delays, and crashes. Even more alarming, 41 percent of Baltimore’s major roads are in poor condition.

We see it every time we drive through the city. Potholes aren’t just occasional obstacles; they’re part of the daily commute. Seeing how New Yorkers were able to get potholes fixed seemingly instantaneously by posting about them online on social media, we asked ourselves: “Why can’t Baltimore do the same?”. Instead of accepting broken roads as normal, what if residents could report potholes directly and visibly, giving local government a clear, real-time view of what needs fixing?

This question inspired us to build Holes, a platform that helps Baltimore fix its roads one pothole at a time. By making it easy for the public to report the potholes, it gives residents a way to take action, document the issue and also gives the city a practical tool to respond. The goal is simple: smoother commutes, safer streets, and relief for Baltimore drivers who are losing more than $3,000 a year to roads that should be in their pocket instead.

What it does

Our application automatically detects when a user drives over a pothole and records its location. Based on the user’s preferences, it can either prompt them to report the pothole immediately or wait until they are safely stopped.

The application then streamlines the reporting process for Baltimore City’s 311 system (https://balt311.baltimorecity.gov/citizen/s/). Normally, residents first need to find Baltimore City’s 311 website, then find the pothole section hidden under the Street tab, and then manually submit a report. Our app removes that friction.

When the user initially loads the application for the first time, they will be prompted to enter their personal information (name, phone number, and email). Every time the user drives over a pothole, they can indicate whether the problem involves a water meter, valve, manhole, or steel plate. The application then uses the collected data to auto-fill the form with the required information and submit the report to Baltimore City Administration. The collected data includes:

  • The exact location of the pothole
  • The pothole location type: Street, Alley, Footway, or Curb
  • Whether the issue is caused by a water meter, valve, manhole, or steel plate
  • Contact information: name, phone number, and email

How we built it

Website Frontend: Built using React JS to create the front end of the website. The frontend of the website is built around the backend API, and designed in the user friendly manner.

Website Backend: Built using Python Flask Server, which interfaces with our SQLite database, provides many methods for interacting with the data. The backend also interfaces with the Raspberry Pi.

Impact Measurement/Recorder Device: Built using Raspberry Pi Zero W and an MPU-6050 accelerometer wired over I2C to detect high G-force impacts of potholes. A Python script reads acceleration data and logs the event. The device runs headless on a USB battery, with the sensor and Pi secured for durability. For the pothole report, this setup detects pothole impacts and combines them with GPS to auto-report locations to Baltimore’s 311 system.

Challenges we ran into

  • Since this was the entire group's first time using Raspberry Pi, we had trouble getting the Raspberry Pi up and running, as inorder to setup Raspberry Pi, it has to be connected to a network initially for setup. However the school public wifi cannot be connected headlessly, as every internet-connected device has a unique hardware identifier called a MAC address. The first few digits of this address instantly identify the device manufacturer as the Raspberry Pi Foundation. Many school firewalls automatically block any MAC address belonging to a microcomputer or Linux machine by default.
  • We had never done database implementation/management, so we had to learn how to implement and manage database.
  • Never used React, which we had to learn inorder to build the frontend of the application.

Accomplishments that we're proud of

  • Learned how to use React, Raspberry Pi, SQLite and its database, sorting database and primary keys in span of less than 24 hours.
  • Create a functioning product that is able to detect potholes and send the pothole and user data to database which then automatic report to the Baltimore’s 311 system to improve city's road infrastructure.

What we learned

  • How to use Raspberry Pi
  • Learned about different types of database and what is the most suitable for different cases.
  • Learned importance of primary keys and how to efficiently sort large database.
  • Learned how to use React inorder to create frontend of a application

What's next for Holes

The system will initially launch in Baltimore City. From there, we plan to expand compatibility to other jurisdictions in Maryland and eventually to other states.

Built With

Share this project:

Updates

Submission history