Enterprise Resource Planning
One Laravel platform replacing four years of spreadsheets. Orders, warehouse, factory, accounts, delivery — run from a single operating layer.
The Call
Three brands. Six departments. Zero systems. Orders in email, stock on paper, accounts in a shoebox. Nothing talked to anything.
The Answer
Laravel 13 · MySQL · Built in 2025
By the Numbers
Six modules. Seven roles. Three brands under one roof. The operating layer replacing four years of spreadsheets — built to handle the next ten.
Inside the System
Every module, in motion. Tap a tab — or let it auto-advance. This is what the RMI team sees when they log in every morning.
Revenue MTD, pending orders, low-stock alerts, recent factory arrivals. Stat cards count up. Charts render inline. Zero lag.
Draft → Confirmed → Packing → Dispatched → Delivered. Every status change stamped, user logged, diff recorded.
Every lot pinned to a rack. Amber bars flag low stock. Red bars flag critical. CSV export for month-end counts.
Revenue, expense, P&L — per brand, per period. No more waiting until the 7th of next month to know last month.
Driver, vehicle, route, drop sequence. Recorded before the van leaves. Proof-of-delivery photos attached.
Vendor, lot number, piece count, quality-gate result. No arrival enters the warehouse without a factory stamp.
Click a tab — or watch it cycle
Architecture
Thin controllers delegate to services. Services talk to models. Models sit on a normalized schema. Everything fans out from one kernel.
Tech Stack
No framework-of-the-month. No build tooling. Laravel, MySQL, two CDN scripts. A stack that runs in ten years without an npm apocalypse.
| Backend | Laravel 13 · PHP 8.3 | Mature MVC framework with first-class Eloquent, queue system, and battle-tested auth scaffolding. |
| Database | MySQL 8 | Normalized schema, foreign keys, soft deletes. Single source of truth for every transaction. |
| Templating | Blade | Server-rendered HTML. No hydration. No bundler. No dead JS shipped to the client. |
| Frontend CSS | Tailwind (CDN) | Utility-first, loaded directly. No npm, no PostCSS, no build pipeline to babysit. |
| Reactivity | Alpine.js | Dropdowns, modals, live totals — all without a Vue or React runtime. |
| PDF Engine | barryvdh/laravel-dompdf | Proforma invoices, delivery notes, packing lists. Streamed fresh, never stored. |
| Auth & Roles | Laravel Session + HasPermissions | Session-based login with a permission trait enforcing module-level access across all 7 roles. |
| Hosting | cPanel · Shared LAMP | Deployable without SSH or Docker. Upload, extract, migrate. Done. |
Data Model
Seven core tables. Foreign keys everywhere. Soft deletes on every destructive path. No orphan rows, no ghost references — the database enforces what the app promises.
Access Control
Every role is a set of module-level capabilities enforced by Laravel middleware. No one sees a screen they don't need; no one touches a button they don't own.
| Role | Dashboard | Orders | Warehouse | Accounts | Delivery | Factory | Settings |
|---|---|---|---|---|---|---|---|
| Admin | |||||||
| Manager | |||||||
| Accounts | |||||||
| Warehouse | |||||||
| Factory | |||||||
| Delivery | |||||||
| Viewer |
Engineered by ØRENO
If your business runs on four Excel files and a WhatsApp group, we can build the operating layer that replaces all of it. Quietly, precisely, without a six-figure agency markup.