Sistem informasi berbasis web untuk pengelolaan dan pemantauan persediaan barang elektronik di gudang. Mendukung pencatatan stok masuk/keluar, manajemen supplier & kategori, real-time notifikasi stok rendah, serta ekspor laporan ke Excel.
Dikembangkan sebagai tugas Project Based Learning (PBL) Program Studi Teknik Informatika, Politeknik Negeri Batam.
| Peran | Nama |
|---|---|
| Manajer Proyek | Dwi Amalia Purnamasari, S.T., M.Cs |
| Ketua Tim | Adrian Septiaji (3312501064) |
| Anggota | Cindo Maulina (3312501070) |
| Anggota | Taqiyyah Aufaa Nabiilah (3312501084) |
- Manajemen Data Barang — CRUD barang beserta gambar, satuan (UnitBarang), dan kategori.
- Barang Masuk — Pencatatan inventaris masuk dengan validasi nomor seri unik.
- Barang Keluar — Pencatatan barang keluar dengan pengecekan stok otomatis.
- Manajemen Supplier — Kelola data pemasok barang.
- Manajemen Kategori — Kelola kategori produk elektronik.
- Ekspor Laporan — Unduh data barang dalam format Excel (.xlsx) via PhpSpreadsheet.
- Notifikasi Stok Rendah — Real-time alert via Pusher ketika stok di bawah batas minimum.
- Dashboard Monitoring — Ringkasan stok dan statistik persediaan.
- Lihat Data Barang — Akses read-only ke daftar barang beserta detail stok.
- Ekspor Laporan — Unduh laporan persediaan dalam format Excel.
- Notifikasi Stok Rendah — Real-time alert via Pusher ketika stok di bawah batas minimum.
- Autentikasi — Login, lupa password (OTP via email), dan reset password.
- Pengaturan Profil — Edit nama, email, dan ubah password.
- Role-based Access Control — Middleware
rolemembatasi akses berdasarkan peran.
| Layer | Teknologi |
|---|---|
| Framework | Laravel 13 (PHP ≥ 8.3) |
| Frontend | Blade, Tailwind CSS 3, Flowbite 4, JavaScript |
| Bundler | Vite 8 |
| Database | MySQL |
| Real-time | Pusher + Laravel Echo |
| Export Excel | PhpSpreadsheet |
| SMTP (OTP untuk reset password) |
- PHP ≥ 8.3
- Composer
- Node.js & npm
- MySQL
- Laragon / XAMPP / Valet (atau server lokal lainnya)
-
Clone repositori:
git clone https://github.com/adriansa2009/pro-web.git cd pro-web -
Instal dependensi PHP:
composer install
-
Instal dependensi Node.js:
npm install npm run build
-
Salin file environment dan atur konfigurasi:
cp .env.example .env
Sesuaikan nilai berikut di
.env:DB_DATABASE,DB_USERNAME,DB_PASSWORD— kredensial database MySQLMAIL_*— konfigurasi SMTP untuk OTP reset passwordPUSHER_*— kredensial Pusher (opsional, untuk notifikasi real-time)
-
Generate application key:
php artisan key:generate
-
Jalankan migrasi dan seeder:
php artisan migrate --seed
-
Jalankan server pengembangan:
npm run dev php artisan serve
-
Buka browser →
http://localhost:8000
| Role | Username | Password |
|---|---|---|
| Admin Gudang | admin (default seeder) | password (default seeder) |
| Manajer | manajer (default seeder) | password (default seeder) |
Jalankan
php artisan db:seeduntuk membuat akun default. Periksa file seeder didatabase/seeders/untuk kredensial.
pro-web/
├── app/
│ ├── Http/Controllers/
│ │ ├── admin/ # Controller Admin Gudang
│ │ ├── manajer/ # Controller Manajer
│ │ └── Auth/ # Autentikasi & Reset Password
│ ├── Models/ # Eloquent Models (Barang, BarangMasuk, BarangKeluar, Supplier, ...)
│ ├── Events/ # Event Pusher (LowStockNotification)
│ ├── Mail/ # Mailable (SendOtpMail)
│ └── Traits/ # HasStockAlert (trait notifikasi stok)
├── database/
│ ├── migrations/ # Skema database
│ └── seeders/ # Data awal
├── resources/views/ # Blade templates
├── routes/
│ └── web.php # Definisi route
└── public/ # Asset publik (build, images)
| Fitur | Admin Gudang | Manajer |
|---|---|---|
| Dashboard | ✅ | ✅ |
| CRUD Barang | ✅ | ❌ (read-only) |
| Barang Masuk / Keluar | ✅ | ❌ |
| Supplier & Kategori | ✅ | ❌ |
| Ekspor Laporan | ✅ | ✅ |
| Notifikasi Stok Rendah | ✅ | ✅ |
| Pengaturan Profil | ✅ | ✅ |
Proyek ini dilisensikan di bawah MIT License.