aanugerah/wedding-pro

A comprehensive Wedding Organizer management suite for Filament PHP with Native Mobile integration.

Maintainers

Package info

github.com/aanugerahahmadf/Plugin-Decorasi-flower

pkg:composer/aanugerah/wedding-pro

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.11 2026-05-03 09:02 UTC

This package is auto-updated.

Last update: 2026-07-03 16:52:23 UTC


README

Wedding Pro adalah solusi all-in-one tingkat enterprise untuk membangun platform Wedding Organizer profesional menggunakan Filament PHP dan Laravel. Plugin ini dirancang untuk menjadi backend (Admin Panel) yang sangat kuat, sekaligus menyediakan API lengkap untuk diintegrasikan dengan aplikasi mobile (Android/iOS) via NativePHP.

Packagist Version PHP Version Laravel Version Filament Version License

📑 Daftar Isi

✨ Fitur Utama

Plugin ini membawa fitur-fitur mutakhir yang jarang ditemukan pada plugin Wedding Organizer standar:

1. 📸 AI Visual Search (CBIR)

Sistem pencarian cerdas berbasis Content-Based Image Retrieval.

  • Cara Kerja: Pengguna (klien) mengunggah foto referensi dekorasi impian mereka. AI server akan menganalisis fitur visual gambar dan mencari paket dekorasi di database yang paling mirip secara visual.
  • Akurasi & Performa: Menemukan kecocokan hingga 100% dalam waktu kurang dari 2 detik.
  • Integrasi Kamera: Langsung ambil gambar melalui kamera perangkat untuk pencarian seketika.

Demo: Upload foto bunga → sistem menemukan paket dengan akurasi tinggi.

CBIR Upload CBIR Results CBIR List

2. 🤖 AI Consultant Bot

Asisten chatbot pintar untuk merespon pertanyaan pelanggan.

  • Automasi: Merespon ketersediaan paket, harga, dan detail layanan secara otomatis.
  • Monitoring: Seluruh percakapan terekam dan dapat diambil alih oleh admin (organizer) kapan saja melalui panel pesan Filament.

3. 💳 Midtrans Payment Gateway Terintegrasi

Penyelesaian transaksi langsung dari aplikasi.

  • Snap Token: Menampilkan modal pembayaran yang responsif dan aman.
  • Webhook: Update status pesanan (Pending, Paid, Failed) secara real-time dan otomatis tanpa campur tangan admin.

4. 📱 NativePHP Mobile Ready

Arsitektur API dan service provider yang dioptimalkan secara khusus untuk berjalan di atas ekosistem NativePHP.

  • Normalisasi URL otomatis (mengubah localhost ke 10.0.2.2 untuk emulator Android).
  • Bypass Content Security Policy otomatis di perangkat mobile.

5. 🌐 Multi-language & Auto Translation

Sistem lokalisasi pintar yang mendobrak batasan bahasa.

  • MyMemory API: Terjemahan teks antarmuka dan konten artikel secara otomatis.
  • Smart Caching: Hasil terjemahan disimpan untuk meminimalisir beban request API dan mempercepat waktu muat.

📋 Persyaratan Sistem

Pastikan environment Anda memenuhi spesifikasi berikut sebelum menginstal plugin:

  • PHP: ^8.2 atau lebih baru
  • Laravel: ^11.0, ^12.0, atau ^13.0
  • Filament: ^3.3, ^4.0, atau ^5.0
  • Ekstensi PHP: pdo, mbstring, intl, sqlite3 (untuk NativePHP), exif (untuk manipulasi gambar)
  • Composer: Versi 2.x

🚀 Instalasi

Ikuti langkah-langkah di bawah ini untuk menginstal Wedding Pro ke dalam proyek Laravel Anda.

Langkah 1: Install via Composer

Jalankan perintah berikut di terminal Anda:

composer require aanugerah/wedding-pro

Langkah 2: Daftarkan Plugin di Filament Panel

Buka file app/Providers/Filament/AdminPanelProvider.php (atau panel lain yang Anda gunakan) dan tambahkan plugin ke dalam rantai metode panel():

use Aanugerah\WeddingPro\WeddingProPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->default()
        ->id('admin')
        ->path('admin')
        // ... plugin lain ...
        ->plugin(WeddingProPlugin::make());
}

Langkah 3: Modifikasi Model User (Opsional namun Disarankan)

Agar fitur peralihan bahasa dan asosiasi pesanan berfungsi maksimal, tambahkan trait berikut ke model User bawaan aplikasi Anda:

namespace App\Models;

use Aanugerah\WeddingPro\Traits\HasWeddingPro;
use Aanugerah\WeddingPro\Traits\InteractsWithLanguages;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasWeddingPro;
    use InteractsWithLanguages;
    
    // ...
}

Langkah 4: Jalankan Migrasi & Publish Aset

Plugin ini memiliki struktur database yang ekstensif. Jalankan perintah migrasi:

php artisan migrate
php artisan filament:assets

Langkah 5: Data Seeding (Contoh Data)

Untuk melihat bagaimana plugin bekerja dengan data yang terisi penuh (seperti dummy package, organizer, dan artikel):

php artisan db:seed --class="Aanugerah\WeddingPro\Database\Seeders\WeddingProSeeder"

⚙️ Konfigurasi Lingkungan (.env)

Tambahkan variabel berikut ke dalam file .env proyek Laravel Anda:

# ==========================================
# MIDTRANS PAYMENT GATEWAY
# Dapatkan kredensial di: https://dashboard.midtrans.com/
# ==========================================
MIDTRANS_MERCHANT_ID=Gxxxxxxx
MIDTRANS_CLIENT_KEY=SB-Mid-client-xxxxxxx
MIDTRANS_SERVER_KEY=SB-Mid-server-xxxxxxx
MIDTRANS_IS_PRODUCTION=false

# ==========================================
# AI SERVER & VISUAL SEARCH (CBIR)
# URL menuju server Python (Flask/FastAPI) Anda
# ==========================================
AI_CORE_URL=http://127.0.0.1:5000
CBIR_API_URL=http://127.0.0.1:5000

# ==========================================
# NATIVEPHP & MOBILE SETTINGS (OPSIONAL)
# ==========================================
NATIVEPHP_RUNNING=false
NATIVE_HOST_IP=10.0.2.2
NATIVE_SERVER_PORT=8000
NATIVE_DB_PROXY_SECRET=your-secret-key

📱 Dokumentasi API Mobile

Plugin ini menyediakan RESTful API out-of-the-box untuk dikonsumsi oleh frontend terpisah atau aplikasi mobile.

Endpoint Publik (Tanpa Autentikasi)

Method Endpoint Deskripsi
GET /api/ping Pengecekan health status server.
GET /api/packages/public Mendapatkan daftar katalog paket dekorasi.
GET /api/organizers/public Mendapatkan daftar profil Wedding Organizer.
GET /api/settings Mengambil konfigurasi dinamis aplikasi.

Endpoint Terproteksi (Wajib Bearer Token)

Method Endpoint Deskripsi
POST /api/register Pendaftaran pengguna baru.
POST /api/login Autentikasi dan pengambilan token sesi.
GET /api/profile Mendapatkan detail informasi user yang login.
POST /api/bookings Membuat reservasi/pesanan paket baru.
GET /api/orders Mengambil riwayat pesanan klien.
POST /api/cbir/search Mengirim data image (form-data) untuk pencarian visual.
POST /api/messages/send Mengirim pesan (chat) ke organizer.
GET /api/wishlist Mengelola daftar favorit pengguna.
POST /api/vouchers/apply Menerapkan kode promo/voucher ke keranjang.

Konfigurasi Webhook Midtrans

Agar status pembayaran diupdate secara otomatis oleh server Midtrans, pastikan Anda menyetel Payment Notification URL di dashboard Midtrans ke: https://domain-anda.com/api/webhooks/midtrans

🗄️ Skema Database

Ketika Anda menjalankan migrasi, plugin akan membuat ekosistem tabel berikut:

  • Pengguna & Lokalisasi: users, user_languages, translations
  • Katalog & Organizer: wedding_organizers, categories, packages, products
  • Transaksi & Keuangan: orders, transactions, vouchers, carts
  • Interaksi Pengguna: reviews, wishlists, histories
  • Komunikasi & Konten: fm_inboxes, fm_messages, articles, banners

🤝 Kontribusi

Kami sangat menyambut kontribusi dari komunitas open-source! Jika Anda menemukan kutu (bug), memiliki ide fitur baru, atau ingin memperbaiki dokumentasi:

  1. Lakukan Fork pada repositori ini.
  2. Buat branch fitur Anda (git checkout -b fitur/FiturLuarBiasa).
  3. Tulis kode Anda beserta unit test jika memungkinkan.
  4. Lakukan Commit perubahan Anda (git commit -m 'Menambahkan FiturLuarBiasa').
  5. Dorong ke branch Anda (git push origin fitur/FiturLuarBiasa).
  6. Buka Pull Request di GitHub.

Seluruh Pull Request harus melewati proses CI (Continuous Integration) menggunakan PHPUnit untuk memastikan tidak ada fitur yang rusak.

📄 Lisensi & Legal (Licensing)

Perangkat lunak ini adalah sumber terbuka (Open-Source) dan dilisensikan di bawah pengawasan Apache License 2.0.

Hak Pengguna (What You Can Do)

Berdasarkan Apache License 2.0, Anda diberikan kebebasan untuk:

  • Komersial: Menggunakan plugin ini untuk proyek komersial dan tujuan bisnis.
  • Modifikasi: Mengubah kode sumber untuk menyesuaikan dengan kebutuhan Anda.
  • Distribusi: Membagikan kode sumber asli atau yang telah dimodifikasi.
  • Paten: Menggunakan lisensi paten eksplisit yang diberikan oleh kontributor proyek ini (jika ada).

Kewajiban Pengguna (Conditions)

  • Pemberitahuan Lisensi: Anda harus menyertakan salinan lisensi Apache 2.0 dan pemberitahuan hak cipta dalam setiap salinan perangkat lunak yang Anda distribusikan.
  • Pemberitahuan Perubahan: Jika Anda memodifikasi file source code, Anda wajib menyertakan pemberitahuan (notice) yang menyatakan bahwa Anda telah mengubah file tersebut.
  • File NOTICE: Anda dilarang menghapus atau mengubah file NOTICE (jika ada) dan harus menyertakannya saat didistribusikan ulang.

Sanggahan Hukum (Disclaimer of Warranty & Limitation of Liability)

PERANGKAT LUNAK INI DISEDIAKAN "APA ADANYA" (AS IS), TANPA JAMINAN APA PUN. PENGARANG (AUTHOR) TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN, ATAU KEWAJIBAN LAINNYA.

Lisensi Pihak Ketiga (Third-Party Licenses)

Harap dicatat bahwa plugin ini mengimpor dan bergantung pada beberapa perpustakaan pihak ketiga (dependencies). Sebagian besar library pihak ketiga yang digunakan berlisensi MIT License (seperti Laravel, Filament, Spatie, dan Midtrans). Dengan menggunakan plugin ini, Anda juga setuju untuk mematuhi lisensi dari pustaka pihak ketiga tersebut.

Dibuat dan dipelihara dengan ❤️ oleh Anugerah Ahmad Fachrurochim.
Solusi Sistem Informasi Pernikahan Cerdas Masa Depan.