Case study · UX/UI · Mobile e-commerce app

Ramroparts: finding motor parts and the people who sell them.

Ramroparts is an e-commerce app that lets people buy motor parts, find vendors and get easy access to contact them. This case study walks through the research, the user flow, the design system, all the wireframes and high-fidelity screens, and the feedback from testing.

Product
Ramroparts app
Role
UX/UI designer
Platform
Mobile app
Tools
Figma, Illustrator, Photoshop
Duration
14 days
Illustration of a person shopping for motor parts on a laptop beside boxes and a shopping bag
01 · The problem

The part exists. Finding it is the hard part.

In Nepal, buying a specific motor part usually means visiting several stores. Not every seller is on the internet, general e-commerce sites don't carry the parts people need, and a web search rarely helps find the right vendor.

Ramroparts brings buying and vendor discovery into one app, so a person can search for a part, buy it, or contact the vendor directly.

Three problems the design had to solve

01

Finding vendors

Sellers of motor parts had to be found through a map, or by searching a specific name, and only if they were listed on the web.

Design response. A Centers area with a list of vendors, a detail page for each, and Call and Chat buttons.
02

Finding parts

The products people needed weren't available on existing e-commerce sites.

Design response. A store built around vehicle parts, with categories and filters by brand, price, part number, common name and OEM reference.
03

Trust and cost

Repeated visits to stores that didn't stock the part, and prices that didn't feel reasonable.

Design response. Clear product pages with ratings and discounts, order tracking, and information about the seller.
02 · Discover

What I asked, and what it meant.

Method

Client and user interviews, plus user and competitor research. The process ran through five phases: Discover, Define, Ideate, Design and Testing.

Interview questions

  1. 1

    How do you find the vendors for auto parts?

  2. 2

    Do you use online mediums or the internet to locate vendors?

  3. 3

    How successful were you in finding the vendor you were searching for?

  4. 4

    Did you find it frustrating?

  5. 5

    Were the products you ordered delivered to you?

What the research showed

What I foundWhat it means for the app
Finding vendors and sellers of motor parts was not easy, and meant using a map or searching a specific name.A vendor directory inside the app, with contact built in.
Vendors are only findable if they are listed on the web, and not all sellers are online.Vendor pages that collect the details a buyer needs in one place.
The products people needed weren't on existing e-commerce sites.A catalogue focused on motor and vehicle parts.
Delivery and order status matter to buyers.Order list, order detail and notifications.
This is qualitative research. It guided decisions rather than proving statistics.
03 · Define

One rider, one wallet.

Persona · Kathmandu, Nepal

Nikhil Shrestha

A software developer who is also pursuing his master's degree. He owns a Royal Enfield bike, and the high charges of service centers for bike parts were putting a strain on his wallet.

Goals

  • Search for motor parts and buy them online, without bargaining or visiting the store.
  • Get genuine products at a reasonable price.

Frustrations

  • Not finding a store that sells the part, even after visiting several.
  • Prices that aren't reasonable.

Problem statement

Motor part buyers need a reliable way to find genuine parts and trustworthy vendors at a fair price, without visiting store after store.

How might we…

01

let people search for a part and buy it without leaving home?

02

make vendors easy to find, judge and contact?

03

keep the buyer informed from order to delivery?

04 · Ideate

Three ideas, then a flow.

Solutions from the interviews

01

A proper e-commerce or online store focused on vehicle and motor parts.

02

Easy access to detailed information about sellers and vendors.

03

A better UI so users can find the product they are searching for.

Prioritizing what to build first

Must have

  • Sign up, sign in and OTP
  • Search and product detail
  • Cart and checkout
  • Vendor list with call and chat

Should have

  • Categories and filters
  • Orders and notifications
  • Saved addresses

Could have

  • Flash sale banner
  • Wishlist
  • Contact form

Later

  • Product availability count
  • Sign-up by mobile number
05 · Design · User flow

How a person places an order.

After signing in with an OTP, the dashboard branches into five areas, each in its own color in the flow chart. The main path is short: search a product, open it, buy or add it to the cart, choose an address and finish.

01

Home

Search or select a product, view its detail, then buy or add to cart. Notifications sit here too.

02

Categories

A list of categories that opens into child categories.

03

Centers

A list of vendors, a detail page for each, and Call or Chat.

04

Cart

Proceed to buy, select or add an address, choose the next option and finish.

05

Account

Contact us, FAQ, about us, returns, policy, terms, and the order list with each order's detail.

User flow: login or register, OTP, dashboard branching to home, categories, centers, cart and account, then checkout
06 · Design · Design system · Foundations

The Ramroparts design system.

One system keeps every screen of the app consistent: tokens for color, type, space and shape, a line icon set, and live components with every state. It grows out of the original style guide, with Poppins, the blue and the line icons kept, and it tightens contrast, size and states so the app is easier to read and to build. Everything below on this page is built from these tokens.

Where it started: the original style guide
The original Ramroparts style guide showing the Poppins type scale, six colors and the icon set
Color
Blue 600Brand, fills
Blue 700Text and links
Blue 800Hover
Blue 900Pressed
Blue 50Tint
Red 500Brand, graphics
Red 700Text, badges
Red 50Tint
Green 700In stock, success
Amber 800Low stock
InkPrimary text
Grey 700Secondary text
Grey 500Control border
Grey 200Dividers
Grey 50Screen surface
NavyHeadings, shadow tint
Rule. Brand colors (#0066FF and #EF473D) fill large areas and graphics. Anything that carries small text or an icon uses the darker functional step.
What changed from the original guide, and why
UseSampleWasNowReason
Badge and discount text2 23.72 : 15.58 : 1Small white text on #EF473D fails 4.5 : 1. Red 700 passes.
Blue text on tinted backgroundsBlue Blue4.24 : 15.48 : 1Just under the minimum. Blue 700 clears it.
Primary button labelBuy4.83 : 14.83 : 1Already passes for 14 px medium text. Kept, with a darker hover and pressed state.
Input bordersAaNot defined3.24 : 1Controls need 3 : 1 against the page to be found.
Stock and order statusOkNoneGreen, amber, red plus icon and wordRequested in testing. Color alone would fail WCAG 1.4.1.
Smallest textAa 1110 px11 px minimum, 12 px preferred10 px is hard to read on a phone.
Contrast matrix

Normal text needs 4.5 : 1. Large text and interface components need 3 : 1.

PairSampleRatioTextUI
Ink on whiteAa11.04 : 1✓ Pass✓ Pass
Grey 700 on whiteAa5.48 : 1✓ Pass✓ Pass
Grey 700 on Grey 50Aa5.07 : 1✓ Pass✓ Pass
White on Blue 600Aa4.83 : 1✓ Pass✓ Pass
Blue 700 on whiteAa6.24 : 1✓ Pass✓ Pass
Blue 700 on Blue 50Aa5.48 : 1✓ Pass✓ Pass
White on Red 700Aa5.58 : 1✓ Pass✓ Pass
Green 700 on Green 50Aa4.73 : 1✓ Pass✓ Pass
Amber 800 on Amber 50Aa5.41 : 1✓ Pass✓ Pass
Input border on whiteAa3.24 : 1Not text✓ Pass
Old: white on brand redAa3.72 : 1✕ Fail✓ Pass
Old: blue on tintAa4.24 : 1✕ Fail✓ Pass
Typography · Poppins
Display
24 / 32 · Bold
Genuine parts, fair prices
Header
16 / 24 · Bold
Combustion filter
Subheader
14 / 20 · Semibold
Choose a delivery option
Body
14 / 22 · Regular
Made for four wheelers and bikes, with a one year warranty.
Button
14 / 20 · Medium
Add to cart
Title
12 / 16 · Bold
Order #10452
Caption
12 / 16 · Regular
Ships in 2 to 3 days
Micro
11 / 14 · Medium
Tab bar label (was 10)
Sizes in rem or platform text styles so the user's font setting works. Prices use tabular numerals. Sentence case throughout.
Space, shape and elevation
space-1 · 4
space-2 · 8
space-3 · 12
space-4 · 16
space-6 · 24
space-8 · 32
space-10 · 40
sm · 6
md · 12
lg · 20
full
elev-1
elev-2
elev-3
4 pt grid. 8 inside a component, 16 between fields, 24 between groups. Touch targets 48 px with 8 px between them. Motion is 100, 200 and 300 ms.
Iconography · 24 px line, 1.6 px stroke, round caps
home
categories
cart
centers
account
search
filter
favorite
notify
call
chat
back
delete
done
warning
rating
location
password
email
servicing
order
info
close
Never icon alone unless it is universal. Tab bar icons always carry a label. Icon-only buttons need an accessible name.
07 · Design · Design system · Components

Every component, live.

These are working components. Tab through them, press them and read the rule behind each one.

Buttons
One primary per screen. Blue for the main action, dark for chat, outline for secondary. Labels are verb plus object.
48 px high, 12 px radius. Loading keeps the label and sets aria-busy. Disabled explains itself: "Out of stock", not "Unavailable".
Form fields
Enter a 10-digit number, for example 9812345678.
Verification code
Sent to 98•••••678. Resend in 0:42
Labels always visible, above the field. Errors say what to do. Border is Grey 500 at 3.24 : 1.
OTP screen names the destination and shows a resend timer, fixing a gap found in review.
Product card and stock
24% off
Combustion filter
4.0 (128)
NPR 299NPR 394
In stock · 24 available
Brake pad set
3.0 (41)
NPR 1,250
Only 3 left
Stock is always three things: color, icon and words, and it shows a count. This answers the testing feedback about available product count.
Discount tag uses Red 700 with white text at 11 px semibold. The card is one tap target.
Vendor card
XYZ Company Pvt Ltd
Teku, Kathmandu · 2.4 km

Automotive parts and accessories for four wheelers, in business since 2003.

Trust in one card: name, place, distance, a short description and the two actions that matter. Call and Chat sit together at the bottom, in reach of the thumb.
Filter chips and quantity
1
Navigation and lists
Account
Contact us
FAQ
My orders
Servicing detail
Five tabs, always labeled, at 11 px medium. Active tab is darker and bold, in Blue 700. The cart badge uses Red 700 so its count is readable.
List rows are 52 px, icon plus label plus chevron, and the whole row is the target.
Status, feedback and empty states
Delivered On the way Packed Cancelled
Order placed

We'll notify you when it ships.

Only 1 left

Complete your order soon to secure this part.

Payment failed

Your card was not charged. Try another method.

Added to cart

Your cart is empty

Find a part or browse a category to get started.

Status always uses color, icon and a word. Toasts confirm reversible actions and last at least 5 seconds. Empty states explain and offer the next step. Skeletons appear after 400 ms.
08 · Design · Design system · Patterns and rules

Putting components to work.

Checkout in four short steps
Cart
Address
Payment
Done
Home
Saagar Shrestha · Baneshwor, Kathmandu
9812345678
The original flow is Cart, address, then finish. Making the steps visible with a progress bar shows people how far they are (goal-gradient effect). The primary action is full width at the bottom of the screen.
Content and copy
DoSay what happened and what to do next: "Payment failed. Your card was not charged. Try another method."
Don'tUse "Error 402" or "Something went wrong". It blames nobody and helps nobody.
DoShow price with currency and stock with a count: "NPR 1,250 · Only 3 left".
Don'tShow a bare number or "Limited stock" with no count.
DoUse verb plus object on buttons: "Add to cart", "Call vendor".
Don'tUse "Submit", "OK" or "Proceed".
UX laws applied
Law or heuristicRule in this system
Hick's LawFive tabs at most. Filters live in a drawer and show only when asked.
Fitts's Law48 px targets, 8 px gaps, primary actions full width at the bottom.
Jakob's LawSearch on top, bottom tabs, cart badge and star ratings, as in other shopping apps.
Von Restorff EffectOne filled blue action per screen. Everything else is outline or text.
Doherty ThresholdResponses under about 400 ms. Loading shows a skeleton and a busy button.
Goal-gradient effectA step bar in checkout shows progress toward the order.
Recognition over recallVisible labels, labeled icons, and a filter list that shows every option.
Error prevention and recoveryInline validation, confirmation before removing an item, Undo on toasts.
Accessibility · WCAG 2.2 AA
  • Text 4.5 : 1 and UI parts 3 : 1, guaranteed by the tokens above.
  • Target size. 48 px minimum, above the 24 px AA requirement.
  • Visible focus. 3 px Blue ring with a 2 px offset on every control.
  • Labels and names. Visible field labels and accessible names on icon buttons.
  • Not by color alone. Stock, order status and errors always add an icon and words.
  • Reflow and zoom. Works at 200% text size and 320 px width.
  • Reduced motion. Animations are removed when the user asks for less.
  • Easy sign-in. Paste works in the OTP field and the code names where it was sent.
09 · Design · Wireframes

Structure first, in grayscale.

Every screen of the app was wireframed before any color or photography. Grey boxes stand in for images, so the work is only about layout, hierarchy and flow.

Wireframes: login, sign up, OTP, home with flash sale and categories, product list, notifications
Sign in, home and productsLogin and sign-up ask for very little, with Google and Facebook as shortcuts and a six-box OTP screen. Home has a search field, a flash sale banner, a category grid and a product carousel. The product list shows cards with rating, price and discount.
Wireframes: filter drawer, product list, notifications, about us, add new address and addresses
Filters, notifications and addressesA filter drawer narrows results by brand, price, part number, common name and OEM reference, with Clear and Apply at the bottom. Notifications, About us, Add new address and the address list follow the same simple layout.
Wireframes: cart, categories, search results, contact us, order details and my orders
Cart, categories and ordersThe cart lists items with delivery options and a price summary. Categories use a searchable list with an index. Contact us, order details and My orders complete the after-purchase screens.
Wireframes: payment, product detail, account, cart and service center
Payment, product, account and vendorPayment offers a short list of methods. Product detail puts Add to cart and Buy at the bottom. Account collects the help and policy links. The service center page shows the vendor's description, a map, and Call and Chat.
10 · Design · High fidelity

Adding color, photography and life.

The high-fidelity design applies the style guide to the approved wireframes. Photography sets the mood on entry screens and product pages, while one blue is reserved for the actions that matter: login, apply, buy and call.

High-fidelity screens: login, sign up, OTP, home, product list and filter drawer
Entry, home and browseMotorbike photography greets the visitor on login and sign-up. Home leads with a bold flash sale banner and a line-icon category grid, and product cards show photography, rating and price.
High-fidelity screens: categories, about us, add address, addresses, cart and search results
Categories, addresses and cartCategories are a fast, scannable list. Address forms use labels, checkboxes for default shipping and billing, and a single blue action. The cart shows each product, delivery options and a clear price total.
High-fidelity screens: contact us, notifications, order details, my orders, payment and product detail
Orders, payment and productOrder screens use small status tags, and payment shows the methods as simple, recognisable options. The product page pairs a large image with an Add to cart and Buy pair at the bottom.
High-fidelity account screen and service center screen shown at an angle
Account and vendorThe account page groups the help links as icons. The service center page presents the vendor's photo, location, phone number, a map, and the two actions that matter: Call and Chat.
11 · UX principles in the product

Decisions, and the reasons.

PrincipleWhere it shows up in Ramroparts
Hick's LawThe bottom tab bar has five destinations. Filters are hidden in a drawer until needed.
Jakob's LawSearch on top, cart badge, bottom tabs and product grids follow patterns people know from other shopping apps.
Fitts's LawAdd to cart and Buy, and Call and Chat, are large buttons at the bottom of the screen.
Von Restorff EffectOne blue is used for the primary action on each screen, so it stands out from everything else.
Recognition over recallLine icons paired with labels, and a filter list showing exactly which fields can narrow results.
Visibility of statusCart count badge, notification list, and order list with order detail.
TrustVendor pages with a map, description and contact make sellers feel real.
12 · Self-audit

What I'd fix in the next round.

I reviewed the finished screens against usability heuristics and WCAG. I measured the palette's contrast to check the numbers below. The design system above already applies the fixes.

FindingPrincipleSeverityProposed fix
The style guide's smallest text is 10 px, and much of the secondary text in the screens is very light and small.Legibility, WCAG 1.4.3MajorRaise the minimum to 12 px and keep body text on ink or grey.
The red (#EF473D) reaches only 3.72 : 1 on white, so it fails for small text such as the cart badge count and discount tags.WCAG 1.4.3 ContrastMajorUse a darker red for text and badges, keeping the bright red for large graphics.
Blue on the light blue tint (#EBF0FF) is 4.24 : 1, just under the 4.5 : 1 needed for normal text.WCAG 1.4.3 ContrastModerateDarken the blue used for text on tinted backgrounds.
Many tab bar and card labels are tiny, in light grey, and hard to hit accurately.Fitts's Law, touch target sizeModerateMake tap areas at least 44 px and increase label size.
Sign-up depends on an email and social login, and the flow asks for an OTP without saying where it was sent.Visibility of statusModerateName the destination on the OTP screen and add a resend timer. Testers also asked for sign-up by mobile number.
Product cards don't show whether a part is in stock.Visibility of statusModerateAdd an available count, which was also requested in testing.
Some placeholder content, such as repeated sample text and a sample company, is still visible.Content qualityMinorReplace it with real vendor and product copy.
13 · Testing

What testing told me.

After completing the UI design, I tested the prototype with other users and colleagues to check how easy the UX flow was. It revealed usability issues that I could solve.

I don't have measured results for this project, so I haven't included any numbers. The findings below are the feedback that came out of testing.
Feedback for the next phase
01

Show the available product count

So buyers know how much of a part is available.

02

Sign up with a mobile number

Testers said this could be useful for people who prefer a phone number to an email.

Learnings

Design for the whole journey

Finding a vendor mattered as much as buying the part.

Check contrast early

A vivid brand red looks great and still fails for small text.