At the risk of sounding like a total cliche, "I MADE A THING!"
This is the first iteration of something I've been tinkering with for a while now (read: this is very much a beta). I'm sure there are bugs I haven't caught yet, but I wanted to get this out there in the world now, because the longer it just sits on my local server, the longer I'm going to procrastinate working on it.
If you don't live in or around the bustling metropolis of Jackson, Mississippi, you might be unaware of our infrastructure problems. But they are real. Due to aging pipes, we suffer from frequent boil water alerts (among other water quality issues). The procedure for informing the public about these alerts includes posting them to the Mississippi Department of Health and issuing alerts through SMS and/or email.
When I started this, the city's alert system was wholly insecure. If I had a person's phone number, I could change their alert settings with no authorization. Since then, the city requires a signup through its third-party platform, CivicPlus. That works a little better (though a lack of two-factor authentication gets under my skin), but I think there's still room for improvement.
SSL encryption is also hit-or-miss--some pages of the process are encrypted, some aren't, and that sends up red flags for me.
At the state level, boil water alerts have a limited shelf-life on the MS Department of Health's site, disappearing after the alert has been released (for any alert issued in the state, not just Jackson). I have no insight into why this is how things work, so I won't pretend to make a value judgement on that, but it doesn't allow much transparency for the public to know just how often notices are issued. I'm sure that data is made available somewhere, but it's not easily found on their site.
Moreover, the MSDH's website has an RSS feed of blog posts and news articles, but not a feed for boil water advisories, which would make it easy for folks to actively monitor boil water notices on their own (or folks to consume the content for something like this site...cough cough).
This can all be read as a tantrum directed at the City of Jackson for not being good enough, but I hope that's not the case. My intentions with this were very clear: I saw an opportunity to build something that doesn't disrupt any existing processes and has the potential to provide a smooth, secure user experience. Rather than calling and emailing the City with my tech nerd concerns, I took that opportunity to build a thing that I think can improve folks' day-to-day lives.
Guerrilla public service.
For a couple of years, I've been running a scraping script every fifteen minutes, checking for new boil water advisories on the MSDH's website. If there's a new advisory, the script stores it in a database and makes it available on the site's index.
The scraping script uses import.io's services. They're awesome. Check them out if you need to do some web data collection.
That content is then rendered for the public using a custom web application.
The roadmap for this project is short, but being a one-person shop, it might be a while to get done:
- User accounts
- SMS/Email alerts
- Push notifications
- Postal code-based alerts