IMSPro
A web inventory system for products, warehouses, suppliers, and the stock that moves between them.

The job
Stock was being tracked by hand. The counts drifted, and purchasing and sales couldn't see what was actually on the shelf. IMSPro is the catalog, the warehouses, the suppliers, and every receipt, issue, transfer, and adjustment.
Who uses it
Five roles, one system, different screens. Warehouse staff record movements. Inventory admins keep the catalog, categories, and suppliers. Sales staff see what can be sold. The menu hides what that role can't do. Stock is marked enough, low, or out, and a form checks the entry before it's saved.
How it's built
The interface is a Next.js and React application styled with Tailwind CSS. An Express API on Node.js checks the session and the role, then applies the stock rules. PostgreSQL holds products, categories, warehouses, stock, movements, suppliers, users, roles, and an audit log. A stock movement updates the quantity through a database trigger, so the ledger and the count stay together.
What it tracks
Sign-in issues a token. Passwords are stored hashed. Products get generated codes, barcodes, a parent-child category tree, and more than one image. Available quantity is what's on hand minus what's already reserved. Receipts, issues, transfers, and adjustments record who moved what, where, and why. Products, warehouses, and accounts get switched off instead of deleted, so the history stays. The audit log is written by the database.
Now
Handed to the customer. Staff sign in by role, keep the catalog and the warehouses, and record every receipt, issue, transfer, and adjustment. The dashboard shows the day. The audit log keeps who changed what.
Catalog and warehouses
- Products with generated codes, barcodes, prices, and units
- Parent and child categories
- Several images and extra product details
- Low-stock, reorder, and maximum levels
- Warehouses with a code, a manager, an address, and a capacity
- Suppliers with contacts, tax details, and payment terms
- Search and filters across the catalog
- Deactivate a product or warehouse without erasing its history
Stock and access
- Registration, sign-in, and password recovery
- Five roles, from super admin to sales staff
- Menus and actions limited to the signed-in role
- Receipts, issues, transfers, and adjustments
- On-hand quantity and available quantity, with reservations removed
- Movement history with the person, time, and note
- Dashboard totals, today's movements, and low-stock alerts
- An audit log of who changed what, including the previous and new values
