Find product information at the till, in ten seconds.
A mobile app that finds an item from its supplier reference, shows what the till needs to ring it up, and updates the tracking quantity. It works with no network.
Context
At Leroy Merlin I ran a scope of three departments. Every seasonal operation, and Christmas above all, brings in items the system has never heard of.
Who it is for : Checkout staff, and the teams of the departments involved
The problem
An unreferenced item blocks the checkout. The cashier has to gather several pieces of information before the product can go through. The queue waits, and more often than not she ends up calling a manager.
My insight
The information already exists somewhere. What is missing is getting it to the till at the moment it is needed. And in store, you can never count on the network.
My solution
You type the reference you have in front of you, search ranks the results, and the record shows only what the till needs. A confirmation decrements the tracking quantity, and the history keeps a trace of what was done. There is no API behind it: interface, data and images are precached, and state stays on the device.
Product hypothesis
By searching on the supplier reference inside a catalogue carried on the phone, the right record should be reachable in seconds, network or no network.
My role
- Product framing and scope definition
- Data, domain and feature architecture
- Mobile-first UX/UI design
- Front-end development (React 19, TypeScript)
- Unit, integration and multi-viewport E2E testing
- Accessibility and light/dark themes
- Deployment and documentation
Evidence & quality
- 30In-store usersDeployed across 3 departments, in daily use throughout the season.
- What it changedSmoother checkout flow, fewer reference and pricing errors, no more escalations to managers.
- Software quality14 test files, Playwright E2E at 390×844 and 1440×1000 including offline reload, accessibility verified.
Key decisions
Fully static and offline-first, with no API
Connectivity drops regularly in store, and a till tool that fails to answer is worthless. Everything is precached, so the app opens even offline.
Trade-offNo cross-device sync, no remotely updated catalogue. The scope stays that of a demonstration.
Search by supplier reference, not by name
The supplier reference is the one value the person physically has in front of them while searching. I followed the real gesture instead of the data model.
Replay the Google Sheets flow locally instead of connecting it
I wanted to keep the business logic that matters, from search through to history, without exposing real data or depending on a third-party service.
Trade-offThe catalogue is frozen and fictional. The demo proves the flow, not the data.
Stack
- React 19
- TypeScript
- Vite
- Tailwind
- React Router
- Radix
- Vitest
- Playwright