# Setup Aplikasi

Panduan singkat untuk memulai aplikasi Laravel ini.

## 👨‍💻 Lingkungan Pengembangan
### ⚙️ Required system
Sesuaikan dengan laraval 11 silahkan baca [disini](https://laravel.com/docs/11.x/releases)

Jangan sampai lupa lakukan `npm install` dan `composer install`
### 🔧 Development

```bash
npm run dev
php artisan serve
```

### 🚀 Production

```bash
npm run build
```

---

## 🔥Setup Firebase
Silahkan baca di menu yang tersedia untuk configurationnya

## 📂 File Tambahan

### Menambahkan CSS & JS Kustom

1. **CSS khusus**: Tulis langsung di `tailwind.config.js`
2. **JavaScript umum**: Tambahkan ke `resources/js/script.js`
3. **Build asset tambahan**:

   * Tambahkan di `vite.config.js`
   * Tambahkan ke `@vite([ ... ])` di `resources/views/layouts/app.blade.php`

---

## 🛡️ Role-Based Access Control (RBAC)

Menggunakan `spatie/laravel-permission` untuk mengatur peran dan hak akses pengguna.

### 🔁 Sinkronisasi Permission Otomatis

```bash
php artisan app:fresh-permission
```

> Menyinkronkan permission ke tabel database berdasarkan konfigurasi & policy yang tersedia.

---

## 🧾 Generate Policy & Permission
*Note hanya di gunakan saat Development!
### 1. 🔁 Semua Model Sekaligus

```bash
php artisan app:regenerate-policies
```

**Hasil**:

* Policy file untuk semua model
* Permission terkait otomatis ditambahkan

---

### 2. 🔍 Per Model Tertentu

```bash
php artisan app:generate-policies {model}
```

**Contoh:**

```bash
php artisan app:generate-policies User
```

**Hasil**:

* Policy file untuk model User
* Permissions seperti `create_user`, `edit_user`, dll.

---

### ⚙️ Konfigurasi RBAC (`config/rbac.php`)

| Kunci                          | Fungsi                                                |
| ------------------------------ | ----------------------------------------------------- |
| `policy_namespace`             | Namespace policy: `App\Policies`                      |
| `policy_directory`             | Direktori penyimpanan file policy                     |
| `permission_prefixes.resource` | Prefix CRUD: `['create', 'read', 'update', 'delete']` |

---

