Looking to hire Laravel developers? Try LaraJobs

laravel-starter maintained by zivar

Description
Zivar System Laravel Starter Kit - RBAC, Audit Logging, Media Center & System Telemetry
Last update
2026/08/10 07:22 (dev-main)
License
Links
Downloads
0

Comments
comments powered by Disqus

🚀 Zivar Laravel Starter Kit (zivar/laravel-starter)

Laravel Version Livewire Version PHP Version License Tests Status

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-config
  • php artisan vendor:publish --tag=zivar-assets
  • php artisan storage:link
  • php artisan migrate
  • php 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.4ms per 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:

WhatsApp LinkedIn Instagram


📜 Lisensi (License)

Diterbitkan di bawah Lisensi MIT. Bebas digunakan dan dikembangkan untuk proyek komersial maupun non-komersial.