Smart parking lots system
Assist parking lot maintainers in effectively managing and monitoring parking lots hardware devices.

Background

My Roles
UX Designer, UI Designer
(2 design team members)
Duration
2023 Jan ~ 2023 Jun
(6 months)
Project Type
Work Project at JustStar Information
Tool
Figma, Figjam
Product intro
Assist parking lot maintainers in efficiently managing smart parking lots.
This back-end system aims to help smart parking lot maintainers scrutinize and remote control hardware devices in parking lots. The system also provides users with real-time monitoring and license plate recognition results.
Challenge
How to make a backend system efficient and intuitive under unclear product specs?
I was assigned to design a backend system for smart parking lots. At first, the requirements were not precise because the client didn’t know their accurate needs. However, I solved this problem with communication and usability tests.
Goal
Create a user-friendly and scalable backend system.
As a product designer for a smart IoT parking backend system, I had two goals to achieve in this project. First, I aimed to craft a user-friendly back-end platform to offer a smooth experience for users like engineers and maintainers. Second, I planned to build a scalable system because this system may get bigger and bigger as the client's requirements increase.
Impact
Create intuitive interfaces by conducting usability tests and make them scalable by building PRD.
The main impact of this project was that I focused on creating intuitive interfaces to enhance the user experience. To achieve this, I conducted usability tests and held numerous meetings to comprehensively understand the needs of the client’s managers and maintenance personnel. This user-centric approach led to the development of a backend system with a user-friendly interface, real-time monitoring capabilities, and proactive maintenance features. On the other hand, to make the system scalable, I developed a comprehensive product requirements document (PRD) to ensure a clear plan and record for this project. In addition, the components in the system were strategically laid out so that more features could be added in the future.

Design Process

Define

Client requirements
The clients needed platform managing smart parking lots that dedicated to charging electric vehicles, so they contacted us for assistance. These smart parking lots include hardware devices like floor locks, speakers, induction loops, cameras, and LED displays. These hardware devices interact with each other. For example, when a camera detects an electric vehicle pulling into a parking space, it releases the floor lock and allows the car to park in the space. These smart parking lots can operate smoothly without the need for on-site personnel. However, to manage and monitor these hardwares, the clients need a backend system to view their real-time status and send commands remotely to each hardware.
Use Case
Because this system involves many hardwares and users, we use the following use case to clarify the relationship between each other. This use case was a powerful tool in the design process because it helped us identified user roles and interactions.

Design

Site map
Based on the above process, we created a site map of this backend system. This sitemap visualized the structure of the system and helped us discuss and plan how users would navigate the system. After creating the sitemap, we discussed it with engineers and managers to ensure its feasibility.
User flow
Then, we designed the user flow based on the site map structure. The user flow helped us focus on users' sequential actions to achieve specific goals. With user flow, we decided what features and blocks we should display on different pages. Also, we discussed it with engineers and managers to align our expectations. Below is a part of the main user flow.
Wireframe
Next, I shared and discussed my low-fidelity wireframe idea with Jessy, the lead designer. After the discussion, we designed high-fidelity version of the design on Figma. The following are part of the wireframes.

Test

Internal Usability Test
Research goal
After completing the main functional wireframe flows, we conducted an internal usability test with our colleagues. (Mainly engineers, who are also the end users of the system) Our aim was to gather their feedback to iterate our wireframes and user flows. I designed three scenarios for them to test the system through scenario tasks. We wanted to discover any issues that users might have with the system.
Methods
  • Engineers who would use the system to setup and maintain smart parking lots
  • 4 participants, 25-30 years old on average
  • Each interview was about 55~60 minutes
Task scenarios
Task 1
Check the latest hardware status
The owner of vehicle number ENJ-6789 reported that he wants to park in the 2nd parking space of Taoyuan Station to charge the battery, but the floor lock is constantly on the rise. Please confirm the status of the floor lock and try to troubleshoot the owner's problem.
Task 2
Check License Plate Records
You received a complaint from customer service that an electric car with the number ENJ-0001 at Taoyuan station could not be driven away due to a plate number recognition error. Please find out which parking space the vehicle is currently in and to confirm if it's a recognition error. Then, please manually edit the license plate to the correct one.
Task 3
Check Hardware History
You received a complaint this morning that a car (No. ENJ-9999) at Taoyuan Station could not drive away. You want to know which parking space the car was in and when the floor lock went up, making it unable to drive out of the parking space.
Problems & Solutions
I analyzed the interview feedback and worked together with lead designer to develop possible design solutions. On the other hand, we made some adjustments after we discussed with managers. Below are a few design decisions that we made based on users’ feedback and discussion.

Final Design

Design system
We then created a design system based on the Ant Design UI library. Ant Design was chosen because it has a variety of components related to backend system, as well as the Vue front-end framework used by the developers we worked with. By establishing this design system, I can ensure the system's consistency. It also improved the working efficiency. Most importantly, with a design system, the team can scale this system freely in the future.
Mockup
Next, we designed the mockup for this project based on the design system and wireframe. To match the image of "Smart Parking Lot", we chose blue as the primary color. Due to the previous preparation and discussion, we created this mockup efficiently.
Product Requirements Document
Due to time constraints, our company had not documented different versions and reasons for iterations in previous projects. As a result, the management of version iterations and design decisions became confusing and ambiguous. We often iterated to check and resolve interface issues that had been previously discussed. Therefore, I took the initiative to write this PRD to document the various versions of the product for future review and version management. Doing so allows the product to be scaled up more efficiently.

Reflection

Better hand-off documentation
We didn't label the Ant Design component on Figma clearly. The front-end developers often didn't know which components we used for the design, which led to the implementation being a big difference from our design. After this, we made the label more straightforward to reduce the guesswork. Also, I have learned that we needed to communicate with the developers to let them understand how to read our design file before the handoff.
Learn hardware knowledge
Because this project required a lot of hardware to be connected to the system, I learned much about hardware and realized its limitations. Such as, the hardware could not respond to the success of its actions, or when it's rainy, the cameras would not be able to accurately recognize the license plate. These situations made the project's design more complicated. Still, we overcame them all. Looking back, I'm glad that I was able to learn all this unfamiliar knowledge in this project.
Deal with unclear requirements
When we received this case, the client did not clearly explain the requirements. We wasted a lot of time on confirmation. I learned that defining the requirements is much more important than directly working hard. Therefore, I created a requirements form for the business developers to complete. We use this form in subsequent projects. The form helped the designers clear the requirements and allowed the entire team to quickly understand the project's direction!
Cleaning Service Platform
Yahoo App Optimization