laravel-starter maintained by zivar
🚀 Zivar Laravel Starter Kit (zivar/laravel-starter)
Zivar Laravel Starter Kit adalah enterprise-grade starter package untuk proyek Laravel 13 & Livewire 4 modern yang dilengkapi dengan manajemen peranan RBAC granular, rekam jejak audit log immutable, pusat berkas media polimorfik (dengan pratinjau Fancybox v5 & chunk upload), telemetri performa sistem, serta tema premium Vuexy UI.
✨ Fitur Utama (Core Modules)
| Modul | Deskripsi & Kapabilitas |
|---|---|
| 👤 User Management | Manajemen akun pengguna, avatar upload dengan indikator progres realtime 60FPS, indikator kekuatan password client-side, serta penetapan peranan (assign roles) via Select2 Multi-Select. |
| 🛡️ RBAC Permission Matrix | Pengaturan hak akses granular (Create, Read, Update, Delete) per modul per role. Dilengkapi In-Memory Permission Map Caching selama 1 jam & invalidasi cache otomatis. |
| 📜 Immutable Audit Log Trail | Perekaman otomatis setiap mutasi data (created, updated, deleted) via trait Auditable. Dilengkapi inspeksi modal Diff View Inline 3-kolom untuk melihat perubahan nilai atribut sebelum & sesudah. |
| 📁 Polymorphic Media Center | Manajemen berkas polimorfik (HasMedia trait) dengan integrasi Fancyapps Fancybox v5 Lightbox, streaming berkas publik/privat terproteksi, penyaringan kategori, dan pengunggahan berkas besar via Chunked Upload. |
| 📊 Telemetry Metrics Center | Dashboard performa & kesehatan sistem real-time (/metrics) meliputi konsumsi RAM, latensi PDO database, penggunaan disk OS, distribusi rekaman 6 tabel database, dan konfigurasi PHP Engine. |
| 🎨 Vuexy Premium UI | Interface modern bertema Vuexy dengan mode Terang/Gelap (Light/Dark mode switcher), jQuery 3.7.1, Toastr.js, dan SweetAlert2. |
📋 Persyaratan Sistem (Requirements)
- PHP:
>= 8.3 - Laravel Framework:
>= 13.0 - Livewire:
>= 4.0 - Database: MySQL 8.0+ / PostgreSQL / SQLite 3
- Cache & Session: Redis 7.2+ (Direkomendasikan untuk produksi / K8s)
⚡ Panduan Instalasi (Installation)
1. Require Package via Composer
Jalankan perintah berikut pada proyek Laravel baru Anda:
composer require zivar/laravel-starter
2. Jalankan Installer Zivar
Eksekusi command installer bawaan Zivar untuk mempublikasikan konfigurasi, aset Vuexy UI, menjalankan migrasi database, dan mengisi seeder master data:
php artisan zivar:install
Perintah di atas secara otomatis akan mengeksekusi:
php artisan vendor:publish --tag=zivar-configphp artisan vendor:publish --tag=zivar-assetsphp artisan storage:linkphp artisan migratephp artisan db:seed
💡 Panduan Penggunaan & Arsitektur Kode
1. Pengecekan Hak Akses RBAC pada Model User
Gunakan helper hasPermission() untuk mengevaluasi hak akses pengguna terhadap modul:
// Mengecek apakah user memiliki izin membaca modul user
if (auth()->user()->hasPermission('user', 'read')) {
// Tampilkan data user
}
// Mengecek izin menghapus modul role
if (auth()->user()->hasPermission('role', 'delete')) {
// Proses hapus role
}
2. Otomatisasi Audit Logging (Auditable Trait)
Cukup tambahkan trait Auditable pada model Eloquent Anda untuk merekam setiap perubahan data secara otomatis:
namespace App\Models;
use App\Traits\Auditable;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use Auditable;
protected $fillable = ['name', 'price', 'stock'];
}
3. Pengelolaan Berkas Media Polimorfik (HasMedia Trait)
Tambahkan trait HasMedia untuk menghubungkan model mana pun dengan tabel media:
namespace App\Models;
use App\Traits\HasMedia;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use HasMedia;
}
// Melampirkan berkas media ke user
$user->attachMedia($fileUpload, 'avatar', 'public', true);
// Mengambil URL berkas media
$avatarUrl = $user->getMediaUrl('avatar');
🧪 Automated Testing & Stress Benchmark
Package ini dilengkapi dengan suite pengujian unit, fitur, dan stress benchmark test yang 100% lolos (PASSED):
php artisan test
Hasil Benchmark:
- RBAC Throughput Benchmark: 2.000 evaluasi hak akses berurutan selesai dalam
< 0.4msper check. - Audit Log Writing Benchmark: 100 transaksi penulisan massal selesai tanpa kegagalan integritas.
- Media Aggregate Benchmark: 1 Query SQL aggregat kondisional pada 500 berkas media selesai dalam
< 15ms.
PASS Tests\Unit\UserRbacTest
PASS Tests\Feature\AuthAndProfileTest
PASS Tests\Feature\MediaCenterTest
PASS Tests\Feature\AuditLogAndMetricsTest
PASS Tests\Feature\SystemStressTest
Tests: 15 passed (39 assertions)
Duration: 2.58s
🐳 Deployment (Docker & Kubernetes Cloud-Native)
Zivar Starter Kit telah dilengkapi berkas konfigurasi container & manifest Kubernetes production-ready:
1. Pengujian Container Lokal (Docker Compose)
docker-compose up -d
Aplikasi akan aktif di http://localhost:8080 (App + MySQL 8.0 + Redis 7.2).
2. Deploy ke Kubernetes Cluster (K8s)
kubectl apply -f .k8s/configmap.yaml
kubectl apply -f .k8s/secret.yaml
kubectl apply -f .k8s/job-migrate.yaml
kubectl apply -f .k8s/deployment.yaml
kubectl apply -f .k8s/service.yaml
kubectl apply -f .k8s/ingress.yaml
kubectl apply -f .k8s/hpa.yaml
⚙️ Konfigurasi Package (config/zivar.php)
Anda dapat menyesuaikan durasi cache dan whitelist model upload melalui file config/zivar.php:
return [
'name' => 'Zivar System Starter Kit',
'permissions_cache_ttl' => 3600, // Durasi Cache RBAC Permission (1 Jam)
'telemetry_cache_ttl' => 30, // Durasi Cache Telemetri Metrics (30 Detik)
'allowed_upload_models' => [
App\Models\User::class,
App\Models\Media::class,
],
];
📬 Kontak & Sosial Media (Author)
Jika Anda memiliki pertanyaan, saran pengembangan, atau ingin berkolaborasi, silakan hubungi pengembang melalui:
📜 Lisensi (License)
Diterbitkan di bawah Lisensi MIT. Bebas digunakan dan dikembangkan untuk proyek komersial maupun non-komersial.