CRM for an auto salvage yard: donor cars, parts stock, sales and an OEM catalog
The challenge
A Japanese-car salvage yard kept records in a 2010s desktop program over remote desktop: one workstation, no search from a phone, purchase costs visible to anyone at the computer. Parts were added by hand one by one with no link to a model or OEM number, so OLX listings and stock lived apart.
What was built
We designed and built a PWA CRM from scratch in two phases. Phase 1 — foundation and stock: donor intake, breakdown into parts where each part gets a permanent unique number (soft delete only), donor expenses; cost and balance are visible only to the admin and the director — a dedicated test catches any leak into any screen. Phase 2 — sales: customers with a blind phone index, reservation and sale from stock, statuses with cron jobs (reservations expire hourly, sales close daily), discounts. Then the catalog model → generation → trim → parts with OEM numbers and paint code: on donor intake the storekeeper just ticks “present / missing / damaged”.
Permanent part number
the part ID is its physical number forever; delete is soft only, history is never lost.
Costs under lock
purchase, expenses and balance visible only to the admin and director; an automated test catches leaks into any screen.
Reservations and sales
reserve from stock, multi-line sales, expired reservations released automatically every hour.
OEM catalog
model → generation → trim → parts with OEM numbers; donor intake as a “present / missing / damaged” checklist.
Paint code
donor and part colour by factory code, to match body parts without photos.
PWA on the phone
runs as an app on the storekeeper’s phone and updates itself; QR labels hidden behind a switch until needed.
The result
Instead of one workstation over remote desktop — a system on every employee’s phone. Only the owner sees costs, parts have permanent numbers, and the OEM catalog turns donor intake into a checklist. 614 backend and 123 frontend tests hold the invariants.
Tech stack
Have a similar challenge?
Discuss a projectNext case
3D fleet showcase
3D fleet garage: an isometric diorama →