Laravel application for auditable warehouse inventory operations. It uses an immutable inventory ledger and a materialized current-stock projection.
Requirements: PHP 8.3+, MySQL, Composer, Node.js, and npm.
- Create a MySQL database named
inventory_intelegence. - Configure the database and initial administrator variables in
.env. - Install dependencies and prepare the local database:
composer install
npm.cmd install --ignore-scripts
php artisan migrate:fresh --seed --force
npm.cmd run build
php artisan serveOpen http://127.0.0.1:8000/login and sign in with the initial administrator credentials configured in .env.
| Role | Permissions |
|---|---|
| Administrator | Manage users, products, suppliers, and record inventory transactions. |
| Warehouse Manager | Manage products/suppliers, record transactions, reverse transactions, and override negative-stock protection. |
| Warehouse Staff | Manage products and suppliers; inventory ledger is read-only. |
| Viewer | Dashboard and inventory ledger are read-only. |
- Transactions are immutable; corrections use a linked reversal entry.
GOODS_RECEIPTrequires an active supplier.- Transaction unit must match the product master unit.
- A stock adjustment is based on the physical quantity. Its direction and difference are calculated by the domain service.
- Adjustments require a reference type, reference number, and reason.
- Negative stock is rejected unless a warehouse manager records it.
inventory_stocksis updated atomically with its ledger entry and may be rebuilt from the ledger if required.
php artisan test
php artisan route:list