View
CASE STUDY 01 / RETAIL, POS

Lucrum POS

Cashier acceptance went from 92 to 96 percent across more than 30,000 transactions.

ROLE Senior UI/UX Designer (Lead)
TIMELINE 4 weeks
TEAM Junior UI/UX designer, content writer, full-stack developer, CEO oversight
TOOLS Figma
Lucrum POS running on a tablet at a café checkout counter, cashier tapping a card to pay

Problem and impact

01 / 09
THE PROBLEM

The previous point of sale system was a clunky, legacy tool. Customization was limited, its reporting produced data dumps with no clear resolution path, and the visual design was inconsistent from screen to screen, which caused frustration and slowed cashiers down at checkout. The one thing worth carrying forward was its keyboard shortcut system, everything else needed rebuilding around a design language that could scale, which is what led to the bento style layout used throughout. This redesign set out to present decisions more intuitively, streamline everyday workflows, and lift sales and revenue, measured against transaction time, error rate, and user satisfaction.

View old applications →
92 to 96% Cashier acceptance across the rollout
30,000+ Transactions processed on the new system
01 Cluttered UI Touch enabled layout CTAs and buttons sized to at least 48×48px, meeting touch-target guidelines so cashiers already fluent in mobile devices could use the register just as naturally.
02 Non intuitive Informed UI Each step surfaces exactly the decision at hand, so a teller applying a voucher or recalling a customer always knows what happens next before moving to payment.
03 Cognitive load Bento style UI With several decisions happening at once, the bento layout kept every piece of relevant information visible at a glance instead of buried across screens.
04 Clicks and input User friendly flows Fewer, clearer choices at each step made the path forward feel closer to a default than a decision, easing the load on tellers working under pressure.
Brands running on Lucrum POS 15 live
Coffee Layers Craving

Scope and role

02 / 09

I led discovery and design on this end to end: the research loop, the flows, the design system, and the sign-off passes that got it into cashiers' hands. The register was the visible part. Most of the work was agreeing what a transaction actually is with the people who run the floor.

OWNED Discovery through delivery Objectives, competitor benchmarking, cashier research, flows, wireframes, the component library, and UAT coordination.
WORKED WITH Stakeholders and the floor Workshops with stakeholders to set scope, and a verification pass with the operations lead on every flow before it reached wireframes.
BUILT A system, not screens An enterprise design system meant to outlive this one product and carry across the rest of the ERP surface.

The part that mattered most was the least visible: no flow was signed off in Figma alone. Each went through a field inspection with the operations lead first, which is why so few of them came back after build.

Research

03 / 09
View all diary notes & research →

Before Figma opened, the process ran through a fixed loop: review goals, gather research, list every touchpoint a cashier hits in a shift, sketch an empathy map, translate that into a user journey, then refine and digitize it before wireframing anything. Alongside direct feedback from cashiers, I benchmarked how existing POS platforms and hospitality kiosks handled the same moments, self checkout, drive through queuing, priority orders, to see which patterns held up under real transaction pressure rather than just looking clean in a deck.

Handwritten UX process loop: review goals, user research, list touchpoints, empathy map, brainstorming with a lens, affinity diagram, sketching the journey, refine and digitize, then share and get feedback
The research-to-journey loop, from the notebook
Handwritten usability checklist covering simplicity, consistency, customizability, data visualization, search and filter, usability testing, accessibility, and mobile friendliness, plus progress indicator rules
Usability & progress-indicator checklist, from the notebook
Orders don't finish in one passCashiers regularly need to hold an order mid transaction, a customer steps away, a table isn't ready yet, and recall it later. Dine in, take away, and delivery each needed their own recall path rather than one generic resume button.
Returns needed a guardrail, not a wallEvery return path, cash refund, replace, exchange, or loyalty credit, had to route through a manager PIN before completing, so staff could still process a return quickly without it becoming a loophole.
Stock isn't just localA cashier often needs to check whether an item is available at another branch mid sale, not just in the current store's inventory. That pushed branch search into a persistent, always reachable module instead of a buried settings page.

Scope wasn't limited to the register itself. Early on I mapped every channel an order could come through, drive through, delivery, walk in, pickup, against every touchpoint that needed to support it, order app, web, phone call, KDS, self order kiosk, e-commerce, third party apps, WhatsApp, and the rider app, so decisions made for the register stayed consistent with everywhere else an order could originate. Flows weren't signed off in Figma alone either. Each one went through a field inspection and a verification pass with the operations lead before it moved into wireframes.

Handwritten audit of the legacy POS system, noting limited customization, inconsistent design, and the decision to move to a bento style design system
Legacy system audit, from the notebook
Handwritten map of order fulfillment channels, drive through, delivery, walk in, pickup, plotted against ordering touchpoints including order app, web, phone, KDS, self order kiosk, and rider app
Channel & touchpoint map, from the notebook

Process

04 / 09
1 Week 1

Research & Ideation

Defining Objectives Competitor Benchmarking Cashier Feedback User Research
2 Week 2

Wireframes & User Flows

User Flow Mapping Low-Fidelity Wireframes Design System Structure Empathy Mapping
3 Week 3

High Fidelity Design

Branding & Typography Component Library Prototyping Bento Layout System
4 Week 4

Testing & Iteration

User Testing Feedback Iteration Flow Refinement Field Verification
Hand sketched POS home menu tree covering dine in, take away, delivery, and recall paths
Wireframe: order menu structure, from the notebook
Hand drawn flow diagram of the checkout and payment path, from item selection through card or cash payment
User flow map: checkout & payment, from the notebook

Early exploration went wider than the register itself. Concepts for a companion customer ordering app, a rider app, and delivery partner integrations were sketched alongside the POS to see how much of the design system could be shared across all of them. That consumer facing track was set aside to keep the initial POS rollout focused, but it's part of why the component library was built modular from day one, the toolbar, product tiles, and cart line items were designed to be reusable well beyond the register.

Branding

05 / 09
Light Sea Green #20B2AA R32 · G178 · B170
Jet #343434 R52 · G52 · B52
Giants Orange #FE5A1D R254 · G90 · B29
Aa
Roboto
Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm
Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz

A dark theme was designed alongside this one: a full set of screens on the real product data, not a mockup. It never went live. Rolling a theme change across every client instance was a bigger deployment job than the change was worth, so it stayed in the file.

Worth saying plainly, because it is the more common way design work dies: not rejected in a review, just outrun by what it would cost to deploy. It is also why the palette above is built to hold up in one theme rather than assuming a second would arrive.

User flow and components

06 / 09

At the counter, a cashier searches for an item, adjusts quantity or applies a discount, and sends it to the cart in a couple of taps. Redeeming loyalty points, calculating change, and choosing a payment type all live on the same payment screen, so nothing requires a separate trip through a menu.

Not every transaction goes smoothly. Cashiers can void a transaction before it completes, cancel an order in progress, or process a return once it has gone through, without needing a manager override for the everyday cases. An order can also be placed on hold and pulled back up later through quick reorder, useful when a customer steps away mid purchase.

Five modules sit in the header at all times, POS Orders, Sale Order, Stats Dashboard, Warehouse, and Branch Search, so a cashier can check stock or glance at the day's numbers without leaving the till. Every order carries a reference number, a timestamp, and a status, new, processing, completed, or cancelled, so a manager can trace any transaction after the fact.

Everything reachable from the home screen, six top level modules, several with actions of their own branching off underneath.

Flow chart: Home screen branches into Sale orders (SO), Branch search, Order management, Payments, Dashboard, and Inventory management. Sale orders (SO) branches into Return SO, Update status of SO, and Accept/reject SO. Order management branches into Adjust order, Void transactions, and Return order, which further branches into Refund, Replace, and Exchange. Payments branches into Add discount, Checkout, Redeem points, and Hold order. Inventory management branches into Restock request and Stock details, which further branches into Main, Temporary, and Rejected.

The interface is built from a small set of components reused everywhere they apply: a persistent navigation rail, text fields, dropdowns, radio and toggle controls, a search bar, a product card, a cart line item, an order card, stock cards, a coupon, a quantity stepper, the totals shown at checkout, status pills, a payment method row, and action buttons styled by context, filled for the primary action, outlined for a secondary one, and colored for confirmations, cancellations, and destructive actions, kept consistent as new screens got added.

The POS Orders nav icon in its active state
The POS Orders nav icon in its inactive state
A labeled text field in its active and inactive states
A labeled dropdown field
A radio button in its unselected, hover, and selected states
A labeled radio option, unselected and selected
An on/off toggle switch
A search bar with placeholder text Find Your Item
A payment method row in its default, selected, and active states
A product card with photo, quantity badge, name, and price
An order history card showing status, customer, register, and itemized line
A cart line item showing name, SKU, quantity, and line total
A quantity stepper control
A discount coupon
A stock card for a bakery item showing physical and current quantity
A totals stat card showing paid amount
A totals stat card showing amount to be paid
A totals stat card showing change
Status pills reading new, processing, completed, and canceled
A filled Payment action button A filled Yes confirmation button A filled Redeem Points button
An outlined Create Group button An outlined Card payment method button An outlined Back button An outlined No button
A filled Cancel Order button A filled Void Transaction button An outlined Close POS button An outlined Return Order button
Handwritten spec for list view density, single line, two line, three line, card list, and image list, alongside the order status vocabulary: new, waiting for transport, assigned to transport, delivered, cancelled
List density spec & order-status vocabulary, from the notebook
Handwritten return and invoice adjustment flow, invoice status, proceed or refund, card status rejection handling, and price adjustment against an invoice
Return & invoice adjustment flow, from the notebook

Interface subsystems

07 / 09

Where those components come together as whole screens, grouped by the subsystem each one belongs to: the register and checkout, the order lifecycle, and warehouse replenishment. Select any screen to open it full size.

Register & checkout

Lucrum POS register screen: category chips across the top, a grid of bakery and kitchen products with photos and prices, and a right rail holding the live cart, recall customer, card, cash and transfer options, and an order summary with GST and grand total
Register: catalog, cart & running total
Lucrum POS payment screen: Keenu and cash till methods, paid, to-be-paid and change fields, a GST and discount breakdown, loyalty points redemption converting 1538 points to Rs. 762, and checkout and print actions
Tender, split payment & points redemption

Order lifecycle & returns

Lucrum POS orders dashboard listing every order across all statuses, with adjusted, returns, canceled, on hold and completed filters and an order summary rail
All orders, every status
Lucrum POS orders filtered to returns, each card flagged with a return badge, alongside return order and void transaction actions in the summary rail
Returns queue, with void & return actions

Warehouse & inventory

Lucrum POS product requisition with the EveryDay Order saved group active, multi-selected stock cards showing physical and current quantities with quantity steppers, a request list, a required-by date and re-order mode enabled
Requisition, with saved order groups
Lucrum POS warehouse re-stock view with main, rejected and temporary tabs, stock cards comparing physical quantity against current quantity, and a quick reorder action on each
Re-stock: physical vs. current counts

Reflection

08 / 09

Revamping the interface for Lucrum's POS system was a turning point in how I think about design. The smallest decisions ended up making the biggest difference in how the system actually felt to use, every day. It taught me how to balance business goals with what people actually need, a lesson I still carry into every project I take on.

Muhammad Bin Saif, Product Designer

Diary notes / research

09 / 09

A working notebook kept alongside Figma throughout the project, research loops, wireframe sketches, and the rules each screen had to follow.

NEXT PROJECT Order Management System