Mickael Ebert
EN
All projects
Seasoned

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.

  • Retail
  • PWA
  • Offline-first
  • Mobile
  • Internal deployment
Seasoned

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

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.

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.

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.

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.

  • 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
  • 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.
  1. 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.

  2. 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.

  3. 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.

  • React 19
  • TypeScript
  • Vite
  • Tailwind
  • React Router
  • Radix
  • Vitest
  • Playwright