Sometimes you're just running a tad late, so the meter depletes and the meter maid comes by to give you a shiny new parking ticket. Great. Now you have to pay an immense fee because you had to take care of other responsibilities. You, trying to help that old lady cross the street, which delayed you just a few minutes. Life isn't fair, but you know what, it can be a bit better with the Meter Beater Club. Now there's one less thing to worry about.
What it does
When you get out of your car, just whip out your phone or open up the app on your watch. Pay the meter and say how long you paid for. If your car is still around the area at the time of expiration, either the Meter Beater community or somebody looking to score some easy cash will feed the meter for another hour for a small fee. So no more pesky parking tickets to fuss about and more time for you to live your life the way you want.
How I built it
Its a three part app - the watch and iOS app work together for the parker and a companion webapp for community club members. We spun up a backend heroku app project with Java/Spring as the backend. Split the work into four parallel parts, one back-end, one apple watch, one iOS app, and one webapp partner portal. Stubbed out data to work with in the beginning, then later filled it in with working end-points and data sources. Pieced it all together at the end to create an incredible experience.
By utilizing arcGIS, we provide a map display with routing to find the best path to take for any community club member planning to help out a few needy souls.
With weather-underground, we provide an added benefit for members that are helping in poor weather conditions. Think like surge charging, except we take the cut instead of the club members.
Challenges I ran into (What I learned)
EC2 instances went down, which meant heroku went down. We readily swapped to using a local server which the four of us shared and worked off of. Setting up a server is a pain in the butt. Lots of technical details to work on. Learning a new language is always fun, but also difficult. There are a lot of APIs out there in the world, which isn't a bad thing. But having so many APIs that do the same thing but with different terminology is a huge headache. Adds huge friction to development. And having a "simple" API to have a 15+ step process to just start using shouldn't really be "simple".
Accomplishments that I'm proud of
Beat the EC2 downtime by creating a local environment working off of an iPad hotspot
What's next for the Meter Beater Club
Full integration with payment systems to make a seamless process from start to finish.