I’ve had some major parking woes. If you’d had to park in a city like downtown Denver, it can be a real hassle. The constant circling around and around trying to find a space. And if there’s a major event going on, say, a Rockies baseball game, parking rates can go through the roof and parking itself is scarce. So when you finally do find one, say a parking lot, it turns out to be $15 a night. And all the while you’re fumbling trying to find a space, you’re late to your event/appointment. What’s one to do?

Now, I know there’s a number of you that are asking – why don’t you just use public transportation? That’s valid, but not the point of this article. I’m talking about finding a solution to parking when public transportation is either not an option or simply not convenient at the time.

Over the weekend of July 27-29, 2012, I had the pleasure of participating in the Denver Civic Hack-a-thon. My team and I came up with a pre-alpha mobile app, built in Titanium (natch), to help address this problem. My team members included Andrew Corliss, a social media expert and native iOS developer; and George Petersen, a JavaScript developer and Computer Science student at the Metropolitan State College of Denver. Andrew developed the front end code (UI) and George developed the backend (web service, local database), with me as their technical lead and mentor. While Andrew and George began the weekend as junior Titanium developers, by the end, they rose up to the rank of at least a strong intermediate.

On Friday, July 27th, we came up with the first iteration of our app idea, and called our app “Parking Thief”. The idea was that the user would get a map, with the nearest parking options (meters and lots, as well as prices, as popup pins) displayed based on the user’s current location. Then, the user could click on a pin and get turn-by-turn directions to their parking option. We requested data from the event organizers and called it a night.

The next morning, we discovered that public data on parking in downtown Denver was limited to latitude and longitude, and if we’re lucky, parking lot names. This public data would come from cartodb.com . And no prices were attached to this data. The information just wasn’t available in a central database anywhere.

So, we had to change our app idea. We decided that our app would take the public data (latitude and longitude) and plot that on a map. Then, we added crowdsourcing and gamification to the app. The idea was that users could find a parking lot on the map, and add the name and price to that lot (if that info isn’t already there). Users can get points for adding info, hence the gamification. This information would be updated locally on their app and in the future, pushed back to the public database, so all users of the app would get the updated info. This way, instead of relying on the availability and completeness of public data, our users would help us build the data and make it available to everyone.

With only a day and half now to build our app, and a presentation to put together, we set out to build our app. Due to lack of time, we didn’t implement the turn by turn directions or the geolocation. We did pull in public data, but only displayed a subset of it to avoid overwhelming the map display and hardcoded a default starting location. In the end, our app displayed ten parking locations in the Home tab. In the Parking List tab, the user can input the parking lot name and price. When they go back a window, they can see the data updated in the list. Then, when they go back to the Home tab, they can see the pin name updated with their selection. The Settings tab has some options that may be implemented in the future.

So, where do we go from here? Well, first off, you can enjoy the videos I put here of our app, and read an article about the Hack-a-thon. You may also go to the github link to look at the code. Being that this was an open source project, we’ll only be able to work on this as time permits. Andrew’s interest in Titanium has skyrocketed since that weekend, so he is continuing development on the app as his own personal project. You may follow up with Andrew if you’re interested, he’s got his own fork of the project. I’ll be available if he has questions, of course. :)