zivar/laravel-starter

Zivar System Laravel Starter Kit - RBAC, Audit Logging, Media Center & System Telemetry

Maintainers

Package info

github.com/ravizulfikar/zivar-laravel-basic

Language:HTML

pkg:composer/zivar/laravel-starter

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-08-10 05:06 UTC

This package is auto-updated.

Last update: 2026-08-10 05:22:24 UTC


README

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.