← All projects

Hardware warehouse

A stock system holding 2.5 lakh products

BeforeStock lived in spreadsheets and in people’s heads. Nobody could say what was actually on the shelf.

NowLive counts anyone can check, with every movement logged against the person who made it.

Admin panelStaff loginsLarge scale

The situation

A hardware warehouse carrying well over two lakh distinct items — bearings, bolts, gaskets, fasteners, paints — tracked across spreadsheets that different people updated at different times. Two versions of the truth was normal.

Hardware doesn’t identify cleanly by name alone. A bolt is a type, a size, a grade and a finish, and a bearing is a model plus a suffix. Generic product forms flatten all of that into one text field, which is how you end up with four spellings of the same item and no way to search.

The bigger problem was access. Everyone who needed to check stock also had the ability to change pricing, and when a count came out wrong there was no way to see who had last touched it.

What I built

The catalogue 1
The catalogue 2

The catalogue

Every item carries its own attributes — type, size, variant, grade and colour — so a 6307 ZZ bearing and a 6306 ZZ are separate records rather than two spellings of one. Search and stock filters stay fast across the full catalogue.

Material in and out 1
Material in and out 2

Material in and out

Receiving and issuing both show the arithmetic before it commits — previous stock, the change, and what the new count will be. Green for in, red for out, with an optional note on the movement.

Sales orders 1
Sales orders 2

Sales orders

Orders pull live availability as items are added, with per-line and order-level discounts and packing notes for whoever fulfils it. Payment terms and delivery type sit on the order rather than in someone’s head.

Who did what

Who did what

Every movement is logged against the user who made it, filterable by person, module, action and date. When a count looks wrong, finding out why takes a search instead of a conversation.

Roles and access

Roles and access

Superadmin, admin and user each see a different version of the system. Floor staff can record movements without touching pricing or supplier terms.

What changed

One source of stock truth, replacing the spreadsheet copies.

A wrong count is now traceable to a person and a timestamp, which changed how carefully movements got recorded.

Handles the full catalogue without the search or filtering slowing down.

Built with

Next.js, Node.js, MongoDB

Timeline

5 weeks

Next step

Need something like A stock system holding 2.5 lakh products?
Let's make it yours.

Tell me how your business works and I'll shape it around that, not the other way round.