zivar/laravel-starter

Zivar System Laravel Starter Kit - RBAC, Audit Logging, Media Center & System Telemetry
5 1
Install
composer require zivar/laravel-starter
Latest Version:v1.0.3
PHP:^8.3
License:MIT
Last Updated:Aug 22, 2026
Links: GitHub  ·  Packagist
Maintainer: ravizulfikar

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

Latest Version on Packagist Total Downloads Laravel Version Livewire Version PHP Version License

Zivar Laravel Starter Kit is an enterprise-ready starter package for modern Laravel applications (Laravel 11, 12, & 13) powered by Livewire 3 SPA (wire:navigate), Tailwind CSS, and Zivar UI Kit.

Designed out of the box with multi-language localization (EN/ID), granular Role-Based Access Control (RBAC), immutable audit logging with visual diff viewer, polymorphic media management with chunked uploads, and real-time system telemetry.


✨ Fitur Utama (Core Features)

Modul Deskripsi & Fitur Unggulan
🌐 Multi-Language (EN / ID) Dukungan multibahasa lengkap (English default & Bahasa Indonesia) dengan switcher instan di navbar dan halaman login via <x-layout.language-toggle />.
⚡ Livewire 3 SPA Navigation Transisi halaman mulus tanpa full-page reload menggunakan wire:navigate terintegrasi pada autentikasi, sidebar, dan seluruh modul.
👤 User Management & Trash CRUD pengguna lengkap, upload avatar dengan thumbnail preview, password generator otomatis, penetapan role multi-select, serta manajemen Soft Delete & Trash Bin (Restore / Permanent Delete).
🛡️ Granular RBAC Matrix Matriks izin modul granular (Create, Read, Update, Delete) per role. Dilengkapi proteksi role sistem bawaan (superadmin, admin, user) dan in-memory permission cache.
📜 Immutable Audit Log Trail Perekaman otomatis mutasi data (created, updated, deleted) via trait Auditable. Dilengkapi modal Visual Diff Viewer 3-kolom (Before vs After) dan penampil Raw JSON Snapshot.
📁 Polymorphic Media Center Manajemen berkas multimedia polimorfik via trait HasMedia, integrasi Fancyapps Fancybox v5 Lightbox, streaming berkas privat terproteksi, filter relasi (Active/Standalone/Orphaned), serta Chunked Upload untuk berkas besar (25MB+).
📊 System Telemetry & Metrics Dashboard telemetri kesehatan server real-time (/admin/metrics): penggunaan RAM & Peak RAM, latensi PDO database, kapasitas disk OS, rincian record per tabel master, dan konfigurasi runtime PHP.
🌓 Dark & Light Mode Theme Theme toggle instan (Light, Dark, System preference) bebas kedipan (FOUC-free) tersimpan di localStorage.

📋 Persyaratan Sistem (Requirements)

  • PHP: >= 8.3
  • Laravel Framework: ^11.0 | ^12.0 | ^13.0
  • Livewire: ^3.5 | ^4.0
  • Database: MySQL 8.0+ / PostgreSQL 14+ / SQLite 3
  • PHP Extensions: pdo, mbstring, openssl, fileinfo, curl

⚡ Panduan Instalasi (Installation)

1. Pasang Package via Composer

Jalankan perintah berikut pada root project Laravel Anda:

composer require zivar/laravel-starter

2. Jalankan Installer Otomatis Zivar

Eksekusi artisan command bawaan Zivar untuk mempublikasikan konfigurasi, asset UI, migrasi database, dan seeder master data:

php artisan zivar:install

Perintah php artisan zivar:install otomatis menjalankan:

  1. php artisan vendor:publish --tag=zivar-config --force (Konfigurasi config/zivar.php)
  2. php artisan vendor:publish --tag=zivar-assets --force (Aset UI ke public/assets)
  3. php artisan vendor:publish --tag=zivar-views --force (Blade views ke resources/views)
  4. php artisan vendor:publish --tag=zivar-user-model --force (Model User dengan integrasi RBAC & HasMedia)
  5. php artisan storage:link (Symlink storage publik)
  6. php artisan migrate (Menjalankan seluruh tabel database)
  7. php artisan db:seed --class=Database\Seeders\ZivarDatabaseSeeder (Inisialisasi akun & peranan default)

🔑 Akun & Kredensial Default (Default Logins)

Setelah instalasi selesai, buka browser ke /login:

Peranan (Role) Username / Email Password Hak Akses
Superadmin superadmin / superadmin@zivar.id password Akses penuh seluruh modul sistem (Bypass RBAC)
Administrator admin / admin@zivar.id password Akses manajemen Pengguna & Peranan (CRU)
User Operator user / user@zivar.id password Akses baca modul Pengguna (Read-only)

🧭 Daftar Rute Bawaan (Built-in Routes)

URL Nama Rute Deskripsi
/login login Halaman autentikasi login (dengan SPA wire:navigate)
/language/{locale} language.switch Switcher bahasa instan (en, id)
/admin dashboard Dashboard utama panel admin workspace
/admin/profile profile Profil akun pengguna & ubah password
/admin/users users.index Manajemen pengguna, foto avatar, role assign & trash
/admin/roles roles.index Matriks peranan RBAC & izin CRUD modul
/admin/audit-logs audit-logs.index Jejak audit log & visual diff viewer
/admin/media media.index Media center, chunk upload & lightbox gallery
/admin/metrics metrics.index Telemetri kesehatan server & utilisasi memori
/media/stream/{id} media.stream Streaming media terproteksi (privat/publik)

💡 Panduan Penggunaan & Integrasi Kode

1. Pengecekan Hak Akses RBAC pada Controller / Livewire

Gunakan helper method hasPermission() pada model User:

// Mengecek apakah user memiliki izin create pada modul user
if (auth()->user()->hasPermission('user', 'create')) {
    // Jalankan aksi pembuatan user
}

// Mengecek izin delete pada modul role
if (auth()->user()->hasPermission('role', 'delete')) {
    // Jalankan aksi hapus role
}

2. Perekaman Audit Logging Otomatis (Auditable Trait)

Pasang trait Auditable pada Model Eloquent untuk mencatat seluruh perubahan data secara otomatis:

namespace App\Models;

use App\Traits\Auditable;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    use Auditable;

    protected $fillable = ['title', 'slug', 'content', 'status'];
}

3. Pengelolaan Berkas Media Polimorfik (HasMedia Trait)

Pasang trait HasMedia pada Model untuk mengaktifkan lampiran berkas multimedia:

namespace App\Models;

use App\Traits\HasMedia;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasMedia;
}

// Melampirkan file yang diunggah ke user (collection: 'avatar', disk: 'public')
$user->attachMedia($uploadedFile, 'avatar', 'public', true);

// Mengambil URL berkas media aktif
$avatarUrl = $user->getMediaUrl('avatar');

🧪 Testing Suite

Jalankan pengujian unit dan integrasi otomatis dengan PHPUnit:

php artisan test

Semua 28 skenario pengujian (RBAC, Audit Log, Media Center, Soft Delete, System Telemetry, dan Language Switcher) terverifikasi 100% lulus.


⚙️ Konfigurasi Kustom (config/zivar.php)

return [
    'name' => 'Zivar System Starter Kit',

    /* Durasi cache hak akses RBAC (Detik) */
    'permissions_cache_ttl' => 3600,

    /* Durasi cache telemetri sistem (Detik) */
    'telemetry_cache_ttl' => 30,

    /* Model yang diizinkan untuk upload berkas */
    'allowed_upload_models' => [
        App\Models\User::class,
        App\Models\Media::class,
    ],
];

📬 Kontak & Pengembang (Author)


📜 Lisensi (License)

Diterbitkan di bawah lisensi MIT License. Bebas digunakan untuk proyek komersial maupun personal.

Related Packages

jeffersongoncalves/filakitv5

FilaKit starter kit built on Laravel 13.x and Filament 5.x with a ready-to-use m...

236 17
lauroguedes/mary-ui-starter-kit

A modern Laravel starter kit featuring Livewire Volt, Mary UI, and Tailwind CSS...

228 37
yehuuu6/hyperwire

The Hyper Wire Laravel Livewire Starter Kit

122 20
jeffersongoncalves/teamkitv5

TeamKit starter kit built on Laravel 13.x and Filament 5.x with a ready-to-use m...

138 12