Inspiration
Honestly this idea came from students, literally getting stuck in flooded traffic on the way to college last monsoon. We started talking about how weird it is that this happens every year in almost the same spots, but nobody really does anything about it until the water is already on the road. Like the data exists somewhere (rainfall, drains, etc) but nobody's connecting the dots in real time. So I thought, why not try to build something that predicts it instead of just reporting it after it's already flooded.
What it does
DrainIQ basically tries to warn people (and city workers) before a street floods instead of after. It looks at rainfall data + drain water levels (we simulated this part since we obviously don't have access to real city sensors) and also uses a basic computer vision model to check images of streets/drains to see how bad the waterlogging is. Based on all this it shows a risk map so you can see which areas are likely to flood soon, and it can alert people to avoid those routes.
How we built it
I broke it down into a few parts and worked through them one at a time since it was just me: First I looked for drain sensor data but that stuff basically doesn't exist publicly, so I ended up simulating it based on rainfall patterns from open datasets instead. Then I trained a small image classifier to tell dry road vs wet vs flooded, using a small dataset I put together myself because I couldn't find a proper one online. After that I built a simple prediction model on top of the rainfall trends to guess flood risk per area. Last I put it all into a dashboard so it's actually visual and not just numbers in a terminal. Used Python for the model stuff and pandas, NumPy, TensorFlow, HTML etc for the dashboard. Nothing too fancy, I just tried to make sure it actually worked end to end instead of having a bunch of disconnected parts.
Challenges we ran into
No real sensors = had to fake/simulate data which honestly took longer than expected because I wanted it to at least look realistic. Couldn't find a good dataset for flooded roads so I had to manually collect and label a small one myself, very tedious. Kept going back and forth on how "AI" this should even be vs just being a normal dashboard, figuring out where the actual prediction adds value took a while to settle on. Time was the biggest issue honestly, doing everything solo meant I had a working demo like 3 hours before submission.
Accomplishments that we're proud of
Actually got a full pipeline working end to end — rainfall data going in, model predicting risk, dashboard showing it visually. For a solo project I was honestly not sure I'd get past the "just a bunch of separate scripts" stage. Managed to train a working image classifier even with a tiny self-made dataset, wasn't expecting it to actually perform decently. Got the map/dashboard to update based on the risk predictions instead of just hardcoding stuff, which made the demo feel a lot more real. Didn't give up on the idea even when I couldn't find proper drain sensor data anywhere, figuring out a workaround (simulating it from rainfall data) instead of switching to an easier project. Just finishing something solo in the time limit honestly, there were a few points where I thought about scrapping half the features to make the deadline.
What we learned
How to combine two different types of data (images + time series) into one project, hadn't done that before. Building the model isn't even the hardest part, making it useful and understandable for someone non-technical (like a city official) is way harder than I expected. How messy real-world data actually is, especially for something like drainage where barely any public datasets exist. A lot about time management doing this alone, no one to split tasks with so I had to get ruthless about what actually needed to be done vs what was a "nice to have". Also just got a lot more comfortable debugging on my own without anyone to bounce ideas off of.
What's next for DrainIQ
Replace the simulated drain data with actual IoT sensor integration if I can get access to even a couple of real ultrasonic sensors to test with. Improve the CV model with a bigger, more diverse image dataset — right now it's trained on a pretty small set I put together myself. Add proper route rerouting so it doesn't just alert people but actually suggests a safer path using something like Google Maps API. Try reaching out to local municipal bodies to see if this kind of system could even be piloted on a small scale in one ward or area. Make the prediction model smarter over time by letting it learn from real outcomes (like, was the flood prediction actually right or not) instead of it being static. Clean up the UI a lot, right now it's very hackathon-demo level and not something I'd call production-ready.
Built With
- computer-vision
- css3
- flask
- html5
- javascript
- machine-learning
- python
Log in or sign up for Devpost to join the conversation.