When snow fall in Minnesota exceeds two or three inches, many municipalities declare what is called a "snow emergency". During a snow emergency vehicles will get ticketed and/or towed to maximize plow efficiency, causing great expense and hassle to vehicle owners. Snow emergency rules can be complex, and different municipalities use different methods to let people know when one has been declared -- some don't post at all but automatically declare a snow emergency after two inches or more fall.
Other than a crawl on the television during the morning or evening news there is no centralized resource to find out which municipalities have declared a snow emergency. Larger cities have apps, smaller cities use Twitter or Facebook. People who live in one city but work in another have to keep track of at least two municipalities. It can be a hassle.
What it does
Snow Emergency provides Alexa users a one-stop, voice activated resource to find out which municipalities have declared a snow emergency. No longer do people have to sit and listen to the radio or watch the television in hopes of catching snow emergency information about places they will travel to, now they can ask their Alexa device!
Users with Echo Show devices are shown details about the snow emergency/winter parking restrictions in addition to hearing whether a snow emergency has been declared.
How I built it
Snow Emergency is an Express app hosted on AWS Lambda. It uses a static database of snow emergency information for different municipalities (currently Minnesota only) and checks their websites to see if a snow emergency is in effect.
Challenges I ran into
- Municipalities in Minnesota use varying ways of publicizing snow emergencies, so there's manual work required for each unique location.
- Parsing the municipality part of an utterance (city and/or city & state) is surprisingly difficult.
AMAZON.US_STATEare helpful, but there's still work that needs to be done when parsing the city portion of multi-word place name utterances (e.g., King of Prussia, Pennsylvania or Sioux City, Iowa) and place names with common nouns in them (e.g., Brooklyn Park, Minnesota).
Accomplishments that I'm proud of
- Building a place name parser was a bit tedious but something I will probably use in other Alexa apps I'll build. I can't wait to share this code with other developers for them to use and improve.
What I learned
- There's a wide range of snow emergency regulations and restrictions, as well as a lot of different ways municipalities communicate when a snow emergency is in effect.
- Developing for Alexa can be fun!
What's next for Snow Emergency
I'd like to add more Minnesota municipalities, and expand to support municipalities in other states.