A shop that recognises its stock from a photograph
Before
- Products found by name at the counter among 1,300 lookalikes; transfers confirmed from customers’ screenshots.
After
- One photo names the product and adds it to the sale, offline; every transfer is confirmed against the bank’s own record.
- products told apart by photo, hundreds of them nearly identical
- to search the whole catalogue for a match (95th percentile)
- automated backend tests guarding stock and money rules
The situation
The shop sells around 1,300 products, and several hundred are moulds and cutters that look almost the same: one heart in three sizes, one star with a different edge. Checkout was slow because each item had to be found by name, and bank transfers were confirmed by looking at a customer’s screenshot.
What we built
An Android point of sale where the shopkeeper takes one photo and the system names the exact product, then adds it to the sale. It works without internet: sales and photos are kept on the device and synced when the connection returns. Behind it sit a catalogue with variants, first-in first-out stock, a public site where customers browse and request orders, and Telegram posting for new products.
Payments are never confirmed from a screenshot. The system reads only the reference, asks the bank’s own receipt service, and checks the account, the amount, the date, and that the payment has not been used before.
Details that matter
- Recognition runs on the phone first, with the server as fallback, so checkout never waits on the network.
- Searching the whole catalogue for a match takes 0.67 ms at the 95th percentile.
- Media and encrypted backups live in object storage; 366 automated tests guard the rules for stock and money.
Where it stands
In rollout at the shop. The public ordering site is live at ravini.net.
that slows you down.
Tell us how things run today. We reply within one working day with what we would build first and how long it would take.