Park Assist

Parking sucks. Especially in Los Angeles and especially in Santa Monica. A group of four developers, including myself, wanted to build an application to help alleviate some parking pain. There are already a lot of parking apps out there but none were quite what we were looking for.

Take a look at one of the existing apps we found:


Information overload – way too many options and things to look at. Plus, it was extremely slow as there were so many elements constantly updating and rendering.  The most intuitive applications do not have an endless amount of unnecessary features or overly complicate the main features. They focus on only the most fundamental and useful aspects that the user will interact with the most.

A great example of this philosophy is where the **** should I go to eat. (Warning: heavy NSFW language).  Instead of giving you a million options to choose from, the site tells you exactly where you should go to eat. Of course, if you aren’t satisfied with the selected restaurant, you can request another one. A perfect app for the indecisive.

We decided that this experience was perfect for deciding where to park. Instead of displaying every parking spot and its availability status – just quickly show me one close parking spot that is available right at this moment!

You can also request a different available spot or enter another destination.

The app is currently only functional in Santa Monica as it utilizes the City of Santa Monica Parking API. We are looking into adding support for more cities by leveraging different APIs, such as ParkWhiz.

How it works

  1. The client detects the user’s location and sends a GET request to the server.
  2. The server stores the location as a unique user in the database so that personalized parking recommendations can be stored.
  3. The server pings the database and iterates through 6700+ meters to find the ones within 0.2 miles that currently show as available.
  4. The server sorts the meters by distance and adds them to an array of objects under the user information in the database. The server also responds to the client with this array.
  5. The client maps the closest meter on the map.

The second server

We created a separate, second sever that automatically updates our database with event information for each meter. This server was built with service oriented architecture practices in mind and allowed us to overcome the limitations of the City of Santa Monica Parking API. The API does not allow you to perform a GET request for all available meters. It would be a very slow request even if it did. However, you can GET all sensor events occurring on or after a datetime. Every 10 seconds, our second server updates only the meters in the database that have newly registered sensor events. This results in a manageable database update and a quick database query whenever the client requests a spot.

Feel free to check out the code on Github and my other projects.