novay / draft
A starter kit for Livewire projects.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:laravel-package
Requires
- php: ^8.2
This package is not auto-updated.
Last update: 2025-08-23 16:28:42 UTC
README
Draft ini adalah paket siap pakai untuk Laravel, dirancang untuk mempercepat proses pembuatan proyek baru. Dengan satu perintah interaktif, Draft akan langsung memasang dan mengonfigurasi package-package penting yang umumnya selalu terpakai di hampir setiap proyek Laravel yang saya mulai. Ini adalah solusi untuk menyingkat waktu setting yang sering berulang!
📑 Daftar Isi
- Fitur Utama
- Cara Pasang
- Cara Pakai
- Publikasi File
- Settings API
- Traits
- Kustomisasi
- Catatan Penting
- Lisensi
✨ Fitur Utama
-
Installer via Terminal
Tinggal jalaninphp artisan draft:install
, lalu bisa dipilih fitur apa saja yang akan dipasang, atau langsung pasang semua rekomendasi secara otomatis. -
Keamanan Bawaan
- Proteksi XSS dengan
stevebauman/purify
- Proteksi SPAM dengan
spatie/laravel-honeypot
- Login tanpa password dengan
spatie/laravel-passkeys
- Catat riwayat login dengan
yadahan/laravel-authentication-log
- Standarisasi sandi dengan
bjeavons/zxcvbn-php
- Proteksi XSS dengan
-
UI & Fitur Admin
- Login sebagai user lain dengan
lab404/laravel-impersonate
- Tabel data interaktif dengan
rappasoft/laravel-livewire-tables
- Login sebagai user lain dengan
-
Utilitas Inti
- Sistem pengaturan aplikasi dengan helper
settings()
- Manajemen File di BunnyCDN
novay/bunny-secrets
- Catatan Aktivitas (Logging) dengan
novay/logify
- Trait untuk ID unik (
RandomIds
) - Helper tambahan (
tglIndonesia
,rupiah
,greetings
,me
)
- Sistem pengaturan aplikasi dengan helper
⚡ Cara Pasang
Tambahkan package ini ke proyek Laravel:
composer require novay/draft
Lakukan ini:
php artisan draft:install
Pilih mode instalasi: otomatis (semua fitur) atau manual (pilih satu per satu).
Nanti proses ini akan otomatis:
- Menginstal dependensi Composer
- Memublikasikan file config, view, dan aset
- Memberikan instruksi tambahan jika ada konfigurasi manual
🛠 Cara Pakai
Perintah Artisan
-
php artisan draft:install
Jalankan pemasangan untuk instalasi awal. -
php artisan draft:publish {--force}
Memublikasikan ulang views/assets dari package. Gunakan--force
untuk menimpa file.
Helper Functions
Draft menyediakan beberapa helper global:
settings('app_name', 'Default Name'); // Ambil setting aplikasi tglIndonesia('2025-08-22'); // Format tanggal Indonesia rupiah(15000); // Format angka ke Rupiah me(); // Ambil user yang sedang login greetings(); // "Selamat Pagi / Siang / Malam"
Konfigurasi Manual (Jika Diperlukan)
Beberapa fitur mungkin memerlukan sedikit konfigurasi di file proyek:
-
Middleware (
bootstrap/app.php
)->withMiddleware(function (Middleware $middleware) { $middleware->web([ \Novay\Draft\Http\Middleware\PurifyInput::class, \Spatie\Honeypot\ProtectAgainstSpam::class, ]); })
-
Model User (
app/Models/User.php
)use Spatie\LaravelPasskeys\Models\Concerns\HasPasskeys; use Spatie\LaravelPasskeys\Models\Concerns\InteractsWithPasskeys; use Lab404\Impersonate\Models\Impersonate; use Yadahan\AuthenticationLog\AuthenticationLogable; class User extends Authenticatable implements HasPasskeys { use InteractsWithPasskeys, Impersonate, AuthenticationLogable; }
-
Route (
routes/web.php
)Route::impersonate(); Route::passkeys();
-
JavaScript (
resources/js/app.js
)import './passkeys.js';
Lalu jalankan
npm run build
. -
Environment (
.env
)MAIL_MAILER=resend RESEND_API_KEY=re_123456789 SECRET_URI="https://btekno.app" SECRET_KEY="your-secret-key" BUNNY_SECRET_FILE="bunny" BUNNY_SECRET_KEY="bunnyPass"
-
Livewire Component
<livewire:logify::log-viewer /> <x-authenticate-passkey /> <livewire:passkeys />
📦 Publikasi File
Gunakan php artisan draft:publish
untuk memublikasikan file.
Anda juga bisa memilih kategori dengan tag:
php artisan vendor:publish --tag=draft-views # Views Livewire php artisan vendor:publish --tag=draft-views-volt # Views Volt php artisan vendor:publish --tag=draft-assets # Assets JS/CSS php artisan vendor:publish --tag=draft-config # Config php artisan vendor:publish --tag=draft-migrations # Migrations
⚙️ Settings API
Package ini menyediakan API untuk menyimpan dan mengambil pengaturan aplikasi yang tersimpan di database dengan dukungan caching.
Metode Utama
Metode | Deskripsi |
---|---|
all($fresh = false) |
Mengambil semua settings (dengan cache). |
get($key, $default = null) |
Mengambil 1 setting dengan fallback. |
set($key, $value) |
Menyimpan atau memperbarui setting. |
has($key) |
Mengecek apakah setting tersedia. |
remove($key) |
Menghapus setting tertentu. |
flushCache() |
Membersihkan cache settings. |
group($groupName) |
Mengatur namespace/group untuk settings. |
Contoh Penggunaan
use Novay\Draft\Facades\Setting; // Simpan setting Setting::set('app_name', 'My Application'); // Ambil setting $name = Setting::get('app_name', 'Default App'); // Hapus setting Setting::remove('app_name'); // Ganti group Setting::group('custom')->set('theme', 'dark');
🧩 Traits
RandomIds
Trait ini akan:
- Menonaktifkan auto-increment bawaan Laravel.
- Menghasilkan ID numerik acak 8 digit unik sebelum setiap model disimpan.
- Menjamin keunikan dengan pengecekan ke database agar tidak ada duplikasi.
Contoh Penggunaan
use Illuminate\Database\Eloquent\Model; use App\Traits\RandomIds; class Invoice extends Model { use RandomIds; }
Hasil
$invoice = Invoice::create([ 'customer_id' => 123, 'amount' => 50000, ]); echo $invoice->id; // Contoh output: 48291537
🎨 Kustomisasi
Draft dirancang agar mudah dikustomisasi:
- Config: Semua file konfigurasi akan tersedia di folder
config/
. - Views: Setelah dipublikasikan, bebas edit di
resources/views/
. - Assets: File JS (misalnya
passkeys.js
) bisa diedit diresources/js/
.
⚠️ Catatan Penting
- Untuk mengaktifkan Passkey, pastikan nilai
APP_URL
di file.env
sesuai dengan domain aplikasi yang sedang berjalan. Ketidaksesuaian akan menyebabkan fitur ini tidak berfungsi. - Gunakan opsi
--force
dengan hati-hati saat mempublikasikan ulang file agar tidak menimpa perubahan lokal Anda. Jadi, pastikan Anda sudah melakukan backup jika ada perubahan penting.
📄 Lisensi
Package ini dirilis di bawah Lisensi MIT.