# Inventaris Pondok

Web app inventaris pondok berbasis `Laravel + Blade` untuk shared hosting `Apache + PHP 8.3 + MySQL`.

## Fitur v1

- Login admin basic dengan `username` dan `password`.
- Kelola inventaris barang model `stock` dan siap dikembangkan ke `unit`.
- Kelola objek fasilitas ruangan untuk maintenance.
- Peminjaman `checkout-checkin` sederhana.
- Import Excel multi-sheet dengan staging review.
- Form maintenance publik berbasis QR tanpa login.
- Export laporan inventaris, peminjaman, dan maintenance ke Excel.

## Struktur penting

- Panel admin: `/dashboard`
- Form maintenance publik: `/m/{qr_token}`
- Import Excel: `/imports`
- Laporan: `/reports`

## Setup lokal

1. Salin `.env.example` menjadi `.env`.
2. Isi koneksi database MySQL.
3. Isi akun admin awal:
   - `ADMIN_EMAIL`
   - `ADMIN_USERNAME`
   - `ADMIN_PASSWORD`
4. Jalankan:

```bash
composer install
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
npm install
npm run build
php artisan serve
```

## Import Excel existing

- Sheet `TEMPLATE` akan diabaikan.
- Sheet lain dianggap sebagai `lokasi`.
- Pembacaan data dimulai dari baris `5`.
- Kolom yang dipakai:
  - `B` lokasi
  - `C` nama barang
  - `D` jumlah
  - `E/F/G` kondisi baik / RR / RB
  - `H` keterangan
  - `J` tanggal update
- Tanda `V` dianggap centang kondisi.
- Nilai seperti `1 SET` masuk ke staging review, tidak langsung diimport final.
- Baris seperti `PLAFON`, `KERAMIK`, `JENDELA`, `LOBANG` diarahkan ke objek fasilitas.

## Deploy ke shared hosting Apache

1. Upload seluruh project kecuali folder yang tidak diperlukan untuk server lokal.
2. Pastikan document root mengarah ke folder `public`.
3. Jalankan `composer install --no-dev --optimize-autoloader` di server atau upload folder `vendor` jika hosting tidak menyediakan Composer.
4. Upload hasil `npm run build` sehingga folder `public/build` ikut tersedia.
5. Buat database MySQL dan update `.env`.
6. Jalankan:

```bash
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache
```

## Catatan implementasi

- File foto maintenance disimpan di `storage/app/public/maintenance-photos`.
- Queue dibuat `sync` agar aman untuk shared hosting.
- Export laporan memakai `maatwebsite/excel`.
- QR publik memakai token unik per item/fasilitas/unit.
