Designing a car rental app

Simplifying and improving the car renting process for users

The project at a glance.

The product.
I designed a mobile application aimed at simplifying and improving the car renting process for users by addressing common usability frustrations and streamlining the booking journey.
The problem.
Users frequently feel overwhelmed by cluttered, text-heavy interfaces and unclear terminology, leading to confusion during selection and booking.
My role.
I worked solo on this project as part of my Professional Diploma in UX Design. I was responsible for the end-to-end design process—from initial research and market analysis through to UI design and prototyping.
Tools and methods.
Throughout the project, I used Miro, Figma and FigJam to support different stages of the design process. I applied a range of research and design methods including: a competitor analysis to understand the market, user flows to define the booking journey, sketches to visualise early concepts, and interactive prototypes to test the experience with users.
Duration.
This project was completed in just 2 months, significantly accelerating the standard 6-month course timeline. I structured the design process efficiently, dedicating 5 to 7 days to complete each crucial step from research to final prototype.
Understanding the problem.
Before moving into design , I conducted research to uncover user goals, behaviors, and critical pain points.
This discovery phase provided the strategic foundation for every design decision that followed.
1
Usability Tests
2
Affinity Diagramm
3
Journey Map
Usability Test
Fragmented Booking Experiences & Hidden Friction Points
Users often face unexpected hurdles in existing rental apps that disrupt their booking flow

Observing the Booking Journey
in Real-Time

I performed a deep dive into the rental market by observing two usability tests on competitor apps
AVIS & Hertz.

I also conducted an original usability test with a target participant. I chose this qualitative method to explore user behaviors in depth and observe friction points as they occurred in real time.

Before moving into design, I conducted research to uncover user goals, behaviors, and critical pain points. This discovery phase provided the strategic foundation for every design decision that followed.

Lessons learned.

Through these tests, I learned that even industry leaders have significant gaps in transparency and flow efficiency.

By observing real-time friction, I realized that simplifying terminology and reducing the number of steps isn't just a "nice-to-have"—it's a requirement for reducing the cognitive load that causes users to abandon their booking.
Affinity diagram
Jargon-Heavy Interfaces and Ambiguous Cost Structures
Users feel overwhelmed by dense blocks of text and often encounter "price shock" due to a lack of clear, upfront cost breakdowns.

Synthesizing Patterns to Reduce Cognitive Load.

Through this affinity mapping, I identified that while the overall booking flow is smooth, users struggle with technical industry jargon and high text density.

Key opportunities for improvement include enhancing pricing transparency through clear, itemized cost breakdownsleveraging high-quality imagery to build user trust, reducing unnecessary text, and simplifying the interface to make the booking process as easy and intuitive as possible.

Lessons learned.

The affinity mapping process taught me that "transparency" isn't just about showing a number; it’s about the timing and clarity of information. By grouping user frustrations, I realized that trust is built when we eliminate industry-specific jargon and replace it with human-centered language.
Journey map
Cognitive Overload and the Barrier of Industry Jargon
Users feel overwhelmed by "information-heavy" pages and lose confidence when faced with ambiguous rental terminology and hidden costs.

Mapping the Pillars of a Streamlined Prototype.

By analyzing the user journey, I identified a recurring pattern of friction caused by cognitive overload and industry-specific jargon. To address these, my design strategy for the prototype will focus on two primary pillars:
Simplifying Information Architecture

To solve the "overwhelming" amount of data, I am implementing a progressive disclosure strategy. By utilizing collapsible sections and clear visual hierarchies, I will ensure the interface remains clean while keeping users focused on one decision at a time.
Clarifying Terminology and Transparency

I am replacing industry jargon (like CDW and Damage Excess) with plain-language labels and tooltips. Additionally, I will explicitly define mileage costs and the nuances between "Pay Now" and "Pay Later" to eliminate pricing uncertainty.


Lessons learned.

The journey mapping phase taught me that a "smooth" flow isn't just about the number of clicks; it's about the mental effort required at each step. I learned that by proactively addressing "hidden" questions—such as clarifying what specific industry terminologies actually mean—I can significantly reduce user anxiety and prevent drop-offs before they reach the final booking stage.
Designing the solution.
With a clear understanding of my users and their needs, I began designing a solution that addressed the key pain points uncovered during research. My focus was on creating a car rental booking experience that felt simple, trustworthy, and efficient. I explored different ideas through sketches, wireframes, and prototypes—testing and refining the design based on user feedback at each stage.
5
User flow
6
Sketching
7
Prototype
8
Testing
9
Iterations
User flow
Lack of Sequential Clarity and Direction in the Booking Process
Users often feel lost or hesitant when the path from vehicle selection to final payment isn't clearly defined or logically structured

Architecting a Logical Path to Conversion.

Before sketching, I mapped out a user flow to define the key steps a traveler would take when booking a rental car. This helped me understand how users would move through the app—from searching for a location to final payment confirmation. Creating the user flow early on gave me a clear structure to design around and ensured I was solving the right problems at each stage of the journey.

Lessons learned.

Mapping the flow taught me that the shortest path isn't always the most effective one. I learned that by logically grouping specific industry terminologies and decision points, I could create a sense of momentum that guides the user toward the final payment without causing the cognitive fatigue found in competitor apps.
Sketching
Visualizing Solutions for Information Density and Layout Friction
Moving directly into digital tools can lead to rigid designs that fail to address the complexity of text-heavy layouts and transparent pricing.

Iterative Ideation and Layout Exploration.

With the user flow established, I moved into sketching to quickly visualize and iterate on the layout for each stage of the car rental booking process. My focus was on translating the flow into a tangible interface, using pen and paper to explore various design solutions before committing to high-fidelity mockups. This iterative sketching process allowed me to focus on creating an intuitive layout and structure that addresses the user's need for information and transparency.

Lessons learned.

I learned that sketching serves as a low-stakes environment for rapid problem-solving. By keeping things analog, I was able to test multiple ways of displaying specific industry terminologies and pricing structures without getting distracted by aesthetics, ensuring that the final hierarchy was built purely on user needs.
Prototype
Visualizing Structural Solutions to Reduce Cognitive Overload
Users often feel overwhelmed when presented with a full list of car specifications and insurance details all at once, leading to decision paralysis during the booking stage.

Iterative Ideation and Layout Exploration.

After refining my sketches, I developed a medium-fidelity prototype to focus on the core functionality and information architecture without the distraction of final brand colors or high-resolution imagery. This stage was critical for validating that the structural changes effectively solved the "low points" identified in the journey map. By building this interactive wireframe, I was able to test the logic of the booking flow and ensure the following UI solutions felt intuitive.

To achieve this, I will implement a progressive disclosure strategy, utilizing collapsible sections and a refined visual hierarchy to significantly reduce clutter. This approach ensures the interface remains visually appealing and keeps the user focused on a single decision at a time, preventing the "information overload" noted in earlier research.

Lessons learned.

I learned that medium-fidelity prototyping is the best stage to test if the "logic" of the app holds up. By stripping away colors and images, I was able to see exactly where users still hesitated over certain terminologies, allowing me to refine the information architecture before moving into final design.

Prototype examples:

Testing
Validating Design Logic Through User Behavioral Observation
Even with a structured prototype, users can experience hesitation if the final verification steps or vehicle details do not align with their mental model of a secure booking.

Measuring the Impact of Information Hierarchy.

With the medium-fidelity prototype ready, I conducted usability testing to validate whether my design decisions effectively addressed the pain points found in the initial journey map. I observed how the car rental flow went, specifically looking for signs of "overwhelmed" behavior or confusion regarding terminology. This phase was essential for measuring if the "less clutter" approach actually translated to a smoother user experience.
I analyzed user feedback to evaluate the impact of the medium-fidelity design on perception and trust. Users reported high satisfaction with the linear "A to B" process, noting that the step-by-step guidance is intuitive and successfully reduces cognitive load.
User feedback.

Lessons learned.

Testing taught me that "less clutter" must be balanced with "accessible depth." While users appreciated the clean interface, they still required the ability to "drill down" into specific industry terminologies when they felt uncertain. I also learned that visual elements like step indicators can backfire if they emphasize the length of the process rather than the progress made, leading me to iterate on the progress visualization for the final high-fidelity version.
Iterations
Visual Clarity and Functional Depth
Users often experience a spike in anxiety or fatigue when they cannot quickly verify their logistics or feel overwhelmed by technical data during the final stages of a booking. Following usability testing, I implemented 3 key component refinements to better align the interface with user mental models:
Vehicle Selection: Balancing Visuals with Information

Through usability testing, I observed that participants relied heavily on car visuals but often felt overwhelmed by technical specifications they didn't fully understand. Most users prioritized just three key factors: car type, transmission, and price.
My Approach: I streamlined the primary vehicle card to display these essential data points, reducing cognitive load. However, to support power users or those with specific needs, I integrated a "More Details" CTA. This iteration improves the experience by keeping the interface clean while providing an optional "deep dive" for users who require total transparency before committing.
Step Indicator: Defining the Path

Testing revealed that a vague progress bar created a perception that the booking process was longer than it actually was, leading to minor user fatigue.
My Approach: I increased the scale of the step indicator to improve visual prominence and transitioned from a simple line to numbered stages. This change gives users a clear mental map of the journey, letting them know exactly where they are and how many steps remain, which significantly reduces the "perceived length" of the checkout process.
Booking Summary: The Verification Safety Net

A critical insight gained during testing was the user's need for a final "sanity check" before payment. I realized that while the flow was functional, it lacked a centralized place to verify the logistical details.
My Approach: I introduced a dedicated Reservation Details card within the summary page. By consolidating the pickup/drop-off address, dates, and times into one high-visibility component, I created a "safety net" for the user. This ensures they feel confident in their logistics, preventing the "negative perception" or anxiety that often occurs right before a financial commitment.

Global Interaction Enhancements.

Beyond specific components, I implemented several app-wide logic and usability updates to align the interface with actual user behavior and industry best practices.
Prioritizing Guest Access

Through competitor usability testing, I observed a consistent friction point: many apps force users to sign up before they can even browse inventory.
Notice how the competing apps lead the user toward clicking "Join," "Sign In," or "Log In" by utilizing prominent brand colors and high-contrast buttons. In comparison, the option to "Continue as Guest" is designed with a relatively smaller font and bland, low-priority colors. This creates a visual hierarchy that pressures the user into an immediate commitment rather than allowing for a low-friction entry into the app.
Since every participant in my study preferred to "Continue as Guest," I made Guest Mode the default experience. By moving the registration option to a secondary button on the homepage, I lowered the barrier to entry, allowing users to reach the core value of the app immediately without upfront commitment.
Visual-First Hierarchy

Recognizing that car rental users are highly visual decision-makers, I audited the entire app to ensure images were scaled to an impactful and reasonable size. By prioritizing clear vehicle renders over dense text blocks, I created a more engaging aesthetic that helps users identify their preferred car at a glance, satisfying the behavioral need for visual confirmation seen in the “Browse cars” & “Select a car” phase of the journey map.
Since every participant in my study preferred to "Continue as Guest," I made Guest Mode the default experience. By moving the registration option to a secondary button on the homepage, I lowered the barrier to entry, allowing users to reach the core value of the app immediately without upfront commitment.
Progressive Disclosure for Add-ons

The "Packages" and "Extras" pages are traditionally information-heavy, leading to the "overwhelmed" feeling noted in user research. Since most rental add-ons (like GPS or Child Seats) are self-explanatory, I stripped the UI down to titles only. I implemented a “More Details” toggle for each item, which maintains a clean interface for the majority of users while providing full transparency for those who need to inquire further.
Since every participant in my study preferred to "Continue as Guest," I made Guest Mode the default experience. By moving the registration option to a secondary button on the homepage, I lowered the barrier to entry, allowing users to reach the core value of the app immediately without upfront commitment.
Navigation Control & Heuristic Alignment

To increase user confidence during the final checkout, I transformed every card on the Booking Summary page into a clickable entry point. This decision was rooted in the Heuristic Evaluation principle of "User Control and Freedom." If a user spots a mistake in their dates or location at the final stage, they can tap the specific card to be directed back to that exact step. This functional enhancement prevents the frustration of "starting over" and ensures a seamless, bidirectional flow.

Lessons learned.

These refinements taught me that UX design is a constant balancing act between removing friction and providing enough information to build trust.

I learned that global usability is often found in the unspoken expectations of the user—such as the freedom to browse without an account or the ability to correct a mistake without losing progress.

By categorizing industry terminologies into primary and secondary levels and applying heuristic principles, I realized that small logic updates can have a massive impact on user retention.

This phase proved that a great experience isn't just about a single component, but how the entire system respects the user's time and autonomy.

High Fidelity Prototype.

The high-fidelity prototype serves as the final realization of the user experience, combining validated functional logic with a polished visual identity. By transitioning from wireframes to a complete design, I integrated a refined color palette—including a signature light yellow for map interactions—to establish professional credibility and brand authority
This comprehensive prototype ensures that every interaction—from initial station confirmation to the final Booking Summary—is visually engaging, intuitive, and designed to provide users with a secure and transparent rental journey.

Reflection & Final Takeaways

Designing a rental experience highlighted the gap between "standard" industry practices and actual user needs, proving that even small friction points can lead to total abandonment.

Reflecting on the process, working on this project gave me a deeper appreciation for the value of user research in guiding design decisions. Taking the time to understand real user pain points helped me stay focused on what mattered most throughout the process. I also understood the importance of testing early and often—getting feedback on my sketches and prototypes helped me catch issues early and improve the experience with each iteration.

Overall, this project strengthened my confidence in using a user-centered approach to design thoughtful, practical solutions. It taught me that UX design is a constant balancing act between removing friction and providing enough information to build trust.

I learned that global usability is often found in the "unspoken" expectations of the user—such as the freedom to browse without an account or the ability to fix a mistake without losing progress. By applying heuristic principles and information hierarchy, I realized that small logic updates can have a massive impact on user retention. This journey proved that a great experience isn't just about a single component, but how the entire system respects the user's time and autonomy.

Let’s connect.

I’m always looking for new challenges and collaborations. If you’d like to discuss this project further or see how we can work together, feel free to reach out.

Email: Deebot14@gmail.com

Linkedin: linkedin.com/in/adeeb-graissy

Web & App Design Portfolio:
https://adeebs-portofolio-cdcd19.webflow.io/

GitHub: github.com/Deebot14