Detail Implementasi
Sistem Manajemen Aset berbasis Laravel untuk pencatatan aset fisik end-to-end: registrasi aset + identifikasi (QR/RFID/NFC), movement, disposal + reverse, maintenance, audit/stocktake, approval workflow, laporan (Excel/PDF), changelog, dan pengaturan sistem berbasis database.
Project ini dibuat dengan fokus pada best practice dan clean code
Fitur Utama
1) User Management + RBAC (Spatie Permission) - Role & permission berbasis UUID - Pembatasan akses per modul melalui middleware `permission:*`
2) Master Data - Status Aset, Kelas Aset, Unit, Departemen, Person in Charge, Pengguna Aset, Kategori, Lokasi, Warranty, Vendor Contract
3) Manajemen Aset - Registrasi aset dengan kode otomatis - Foto/thumbnail aset (multi foto) tersimpan di storage - QR code otomatis menuju halaman publik detail aset (tanpa login) - RFID/NFC tag (opsional + bisa auto-generate via setting) - Arsip/retensi + soft delete + restore
4) Transaksi Aset - Movement (mutasi lokasi/departemen/user) - Disposal + Reverse Disposal - Audit/Stocktake - Maintenance (planned/in_progress/completed + dukungan flow approval `pending`)
5) Approval Workflow - Permintaan approval untuk movement/disposal/maintenance (pending/approved/rejected) - Halaman approvals untuk approver
6) Laporan - Export Excel (multi sheet) + PDF untuk aset dan transaksi - Filter laporan (date range, lokasi, dsb.) sesuai halaman laporan
7) Landing & Dokumentasi - Landing one-page untuk memperkenalkan sistem - Public asset view untuk QR scan: `GET /asset-view/{asset}` - Dokumentasi API internal app: `GET /api-docs`
Arsitektur Singkat
- Framework: Laravel
- Template UI: Vyzor (Bootstrap)
- Settings: disimpan di tabel `settings` dan diakses melalui `App\\Services\\System\\SystemSettingService`
- Audit log: file log khusus channel `asset_activity` (bukan database)
- UUID: hampir seluruh tabel inti menggunakan UUID sebagai primary key
Folder penting: - `app/Services/` → business logic (tanpa repository pattern) - `app/Http/Controllers/` → controller tipis, delegasi ke service - `database/seeders/` → sample data - `resources/views/` → Blade UI
Kebutuhan Sistem
- PHP 8.2+ (sesuaikan dengan `composer.json`)
- Composer
- Node.js + NPM (Vite build)
- Database: MySQL/MariaDB (production) / SQLite (testing)
- (Opsional) Laragon untuk dev di Windows