Sistem manajemen inventaris berbasis web yang dirancang untuk mengelola stok barang, transaksi penjualan, pembelian, serta fitur stock opname dengan sistem role-based access control (RBAC) yang ketat.
- Fitur Utama
- Teknologi
- Persyaratan Sistem
- Instalasi
- Konfigurasi
- Database
- Role & Permission
- Fitur Spesifik
- Struktur Menu
- API Endpoints
- Troubleshooting
- Kontribusi
- Lisensi
- Produk - CRUD produk dengan SKU, barcode, harga, stok minimal, lokasi rak
- Kategori - Kelompokkan produk berdasarkan jenis
- Satuan (Unit) - Pcs, Kg, Box, dll
- Supplier - Data pemasok dengan histori pembelian
- Customer - Data pelanggan dengan histori transaksi
- Stok Masuk - Tambah stok dari supplier
- Stok Keluar - Kurangi stok untuk penjualan/retur
- Riwayat Mutasi Stok - Lacak semua pergerakan stok
- Stock Opname - Audit stok fisik vs sistem dengan penyesuaian otomatis
- Transaksi Penjualan - Input transaksi dengan pencarian produk real-time
- Keranjang Belanja - Tambah/update/hapus item sebelum checkout
- Cetak Invoice - Print struk transaksi
- Riwayat Transaksi - Lihat histori penjualan lengkap
- Laporan Stok - Detail stok per produk + peringatan stok menipis
- Laporan Transaksi - Filter by date, type, payment status
- Laporan Laba/Profit - Perhitungan laba kotor & margin
- Laporan Supplier - Pembelian per supplier
- Laporan Customer - Penjualan per customer
- Laporan Mutasi Stok - Pergerakan stok per produk
- Export CSV - Semua laporan bisa di-export ke CSV
- Role & Permission - RBAC dengan 6 role default
- User Management - CRUD user + assign role
- Setting Toko - Konfigurasi nama, alamat, logo, dll
| Teknologi | Versi | Kegunaan |
|---|---|---|
| PHP | 8.2+ | Backend |
| Laravel | 11.x | Framework |
| Alpine.js | 3.x | UI Interaktivitas |
| Tailwind CSS | 3.x | Styling |
| MySQL / PostgreSQL | - | Database |
| Lucide Icons | - | Icons |
- PHP 8.2 atau lebih tinggi
- Composer
- Node.js & NPM (untuk asset)
- MySQL 5.7+ / PostgreSQL 10+ / SQLite
- Web Server (Apache / Nginx)
git clone https://github.com/mseptiawan/inventaris.git
cd inventariscomposer install
npm installcp .env.example .env
php artisan key:generateEdit file .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=inventaris_db
DB_USERNAME=root
DB_PASSWORD=php artisan migrate
php artisan db:seed --class=RolePermissionSeedernpm run buildphp artisan serveAkses: http://localhost:8000
User pertama otomatis mendapat role Super Admin.
Jalankan seeder untuk setup role & permission:
php artisan db:seed --class=RolePermissionSeeder| Tabel | Deskripsi |
|---|---|
| products | Data produk (nama, SKU, barcode, harga, stok) |
| categories | Kategori produk |
| units | Satuan produk |
| suppliers | Data pemasok |
| customers | Data pelanggan |
| stock_mutations | Riwayat mutasi stok |
| stock_opnames | Riwayat stock opname |
| transactions | Transaksi penjualan/pembelian |
| transaction_items | Detail item transaksi |
| users | Data pengguna |
| roles | Role pengguna |
| permissions | Permission akses |
| role_permission | Pivot role-permission |
| user_role | Pivot user-role |
| Role | Deskripsi |
|---|---|
| Super Admin | Akses penuh semua fitur |
| Admin | Kelola produk, kategori, supplier, customer, transaksi |
| Staff Gudang | Input stok masuk/keluar, cek stok, opname |
| Kasir | Transaksi penjualan, cetak invoice |
| Manager | Lihat laporan, dashboard, analisis |
| Viewer | Hanya baca (tidak bisa edit) |
| Permission | Super Admin | Admin | Warehouse | Cashier | Manager | Viewer |
|---|---|---|---|---|---|---|
| view-dashboard | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| view-reports | ✓ | ✓ | ||||
| view-stock-mutations | ✓ | ✓ | ✓ | ✓ | ||
| create-stock-in | ✓ | ✓ | ✓ | |||
| create-stock-out | ✓ | ✓ | ✓ | |||
| view-stock-opname | ✓ | ✓ | ✓ | ✓ | ||
| create-stock-opname | ✓ | ✓ | ✓ | |||
| view-transactions | ✓ | ✓ | ✓ | |||
| create-transactions | ✓ | ✓ | ✓ | |||
| view-products | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| create-products | ✓ | ✓ | ✓ | |||
| edit-products | ✓ | ✓ | ✓ | |||
| delete-products | ✓ | ✓ | ||||
| view-customers | ✓ | ✓ | ✓ | ✓ | ||
| view-suppliers | ✓ | ✓ | ✓ | ✓ | ||
| create-suppliers | ✓ | ✓ | ✓ | |||
| view-categories | ✓ | ✓ | ✓ | ✓ | ||
| view-units | ✓ | ✓ | ✓ | ✓ | ||
| view-roles | ✓ | |||||
| assign-user-role | ✓ | |||||
| assign-role-permission | ✓ | |||||
| view-company-settings | ✓ | ✓ | ||||
| edit-company-settings | ✓ |
Alur:
- Petugas input nomor opname dan pilih produk
- Sistem tampilkan stok sistem (system_stock)
- Petugas input stok fisik hasil hitung manual
- Sistem hitung selisih (physical - system)
- Petugas beri alasan (pecah/hilang/kadaluarsa) & catatan
- Stok produk otomatis diperbarui sesuai stok fisik
- Riwayat opname tersimpan untuk audit
Endpoint:
GET /stock-opnames - Daftar riwayat opname
GET /stock-opnames/create - Form input opname
POST /stock-opnames - Simpan opname
GET /stock-opnames/{id} - Detail opname
GET /stock-opnames/{id}/edit - Edit opname
PUT /stock-opnames/{id} - Update opname
DELETE /stock-opnames/{id} - Hapus opname
Setiap perubahan stok (masuk/keluar/opname) otomatis tercatat di tabel stock_mutations dengan:
- reference_number - Nomor referensi
- product_id - ID produk
- type - in / out / adjustment
- quantity - Jumlah
- notes - Catatan
- user_id - Petugas
- Dashboard
- Produk
- Daftar Produk
- Tambah Produk
- Pelanggan
- Daftar Pelanggan
- Supplier
- Daftar Supplier
- Tambah Supplier
- Atribut Produk
- Kategori
- Satuan (Unit)
- Mutasi Stok
- Stok Masuk
- Stok Keluar
- Riwayat Mutasi
- Stock Opname
- Input Audit Opname
- Riwayat Opname
- Penjualan
- Kasir (POS)
- Riwayat Transaksi
- Laporan Stok
- Laporan Transaksi
- Laporan Laba / Profit
- Laporan Supplier
- Laporan Customer
- Laporan Mutasi Stok
- Role & Akses
- Daftar Role
- Role User
- Hak Akses Role
- Setting
- Pengaturan Toko
- Fork repository
- Buat branch fitur (
git checkout -b fitur-baru) - Commit perubahan (
git commit -m 'Menambahkan fitur') - Push ke branch (
git push origin fitur-baru) - Buat Pull Request
- Ikuti PSR-12 untuk PHP
- Gunakan Tailwind CSS untuk styling
- Gunakan Alpine.js untuk interaktivitas frontend
- Email: growtopiaebr@gmail.com




