Custom point of sale, inventory, and accounting for furniture retail — order entry through stock allocation, delivery, payments, and financial reports, with role-based access control.
Problem#
Furniture retail runs on multi-line orders, partial stock moves, deliveries, and open balances. Spreadsheets and disconnected notes make it hard to keep sales, warehouse, and books aligned — and to limit who can finalize a sale or touch the ledger.
What it does#
| Area | Capabilities |
|---|---|
| Masters | Products, suppliers, customers, staff, users |
| Purchases | Supplier buys; create / update / finalize; purchase payments |
| Sales | Orders and sales flow; line items, notes, invoice no., salesperson, status |
| Stock allocation | Per-line allocate ordered qty before ship |
| Deliveries | Create and view shipment / delivery records |
| Payments | Sale and purchase payments; remaining balance on the order |
| Inventory | Stock tied to transactions; inventory stock summary report |
| Accounting | Chart of accounts + journal/transactions |
| Financial reports | Trial balance, general journal, general ledger, income statement, balance sheet, equity change |
| Sales reports | Orders and sales transactions |
| Dashboard | KPI cards (purchases, sales, shipped, revenue) + income chart |
| Access control | RBAC with granular permissions (view / create / update / delete / finalize per domain) |
UI is Indonesian-first (e.g. Penjualan, Alokasi Stok, Tambah Pembayaran) on an AdminLTE + Bootstrap admin shell.
Screenshots#
Dashboard#
KPI strip and revenue chart (Pendapatan) with range filters.

Sales order#
Order header, line items, totals and remaining balance, print, add payment, and Alokasi Stok rows (e.g. still 0.00/1.00 unallocated).

Stack#
- Backend: PHP / Laravel 8.41.0
- UI: Bootstrap + AdminLTE
- AuthZ: RBAC — granular permissions per resource and action (masters, sales/purchases including finalize, allocations, deliveries, payments, accounting, reports, dashboard, users)
- Data: MySQL (shared-hosting style deploy)
- Locale: IDR formatting, Indonesian labels
Role#
Sole builder — design through deploy for day-to-day store operations.
Links#
- Code: private / closed source
