How we helped people avoid parking tickets and find open spots — Design Case study

I am Product Designer at SpotAngels — mentored by Jonah Jones, Lead designer of Google Maps.


At SpotAngels, we are building a community-based app which helps you find open spots and avoid parking tickets.

When we detect that a user leaves a parking spot, we display an open spot on the map. And because we know where her car is parked, we can send her a notification before the parking duration expiration.

In this design case study, we’ll explain how we designed those services.

Image for post
Image for post

The problem

When we talk to users, there are two recurring problems:

  • They often have parking tickets
  • It’s hard to find an open parking spot

How can we help users avoid parking tickets and find open spots?

Metrics we want to increase with this project

↗ Activation
↗ % users selecting “Always” for the Location Permission
↗ Number of open spots

Image for post
Image for post


Image for post
Image for post

Design Challenges

Onboarding — Ask for touchy permissions

To be able to detect when a user parks or leave, we need to:

  • Always have access to the user location — On iOS, if a user gives the ‘While using the app’ location, we can’t detect any park.
    The location helps us to know where the user is.
  • Always allow Motion & Fitness sensor
    The sensor helps us know when the user drives or walk and detect when she is in her car.
  • Push Notifications
    Notifications are useful to alert a user when it’s time to leave to avoid tickets.

My goal as a designer was to make the onboarding process as smooth and unintrusive as possible. Here’s our solution.

The onboarding checklist

Image for post
Image for post

The first onboarding screen is a checklist. Users can select features they want to enjoy.
→ For users, it’s the first step of an account configuration.
→ For us, it’s a user survey that indicates which feature is the most important.

Ask for permissions

Image for post
Image for post

Depending on the answer, we ask for permissions. Obviously, we don’t need any permission if you only want to see free and cheap parking.

Classic prompt

Image for post
Image for post

For the access to push notification and Motion & Fitness sensor, we just prompt a classic alert view.

Fake prompt

Image for post
Image for post

But for the location access, we do something different.
Because we need the ‘Always allow’ access, we prompt a fake alert with a fancy blue button.

→ If users tap on ‘Only while using the app’ or ‘Don’t allow’, we display an error alert.
→ If users tap the fancy blue button, we display the real iOS alert.

Thanks to this fake prompt, 45% of users select Always for the Location permission.


Image for post
Image for post

Users have direct feedback when permission was given or not.
If users want to have access to the feature, they press again the button and land on the ‘second chance’ screen.

Second chance

Image for post
Image for post

The second chance is tricky because we can’t prompt an iOS alert a second time. We ask to go to Settings and manually change the permission.

The onboarding is done

Image for post
Image for post

Everything is set and a big blue button pops. Users can finally join the community.

Let users edit their car location

Image for post
Image for post

Our goal is to save users from parking tickets.
But if we park a car on the wrong side of the street due to a GPS issue, we will send a wrong notification.

That’s why we ask users to confirm their parking location.
If the position is wrong, they can edit it and park at the correct spot.
Then, we can send them a notification prompting them to move their car, and we display an open spot on the correct location.

Ask users for spot availability on streets

Image for post
Image for post

When users select a spot close from their position or when we detect a park, we ask them how crowded the street is. It helps us provide parking recommendations.
70% of the times users were asked about occupancy after a confirmed park, they answered. It allowed us to provide way more open spots for the community.


The global experience allowed us to push our activation up to 54%.

Project Learnings

Base yourself on user needs, not assumptions
We do research, analyze data, we talk to users and prove our assumptions. We have empathy for users and remember that what they ask for isn’t always what they need.

Done is better than perfect
We don’t build perfect experiences because our time is precious and we want to provide the maximum impact.
We always ask ourselves how to obtain 80% of the value with 20% of the work. We are not famous or beautiful, we are efficient.

I would like to thank the members of the amazing SpotAngels team, who helped me design this experience: Hamza, CEO — Youcef, Product Manager — Jonah who brilliantly mentored me during all the design journey.

Image for post
Image for post

Thank you for your reading.
If you are curious about SpotAngels,
download the app! If you are curious about me, visit my website

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store