Dokumen ini adalah panduan utama pengembangan aplikasi SiHalal.
Berdasarkan analisa langsung dari sistem existing: https://ptsp.halal.go.id
| Kategori | Menu | Deskripsi |
|---|---|---|
| MENU UTAMA | Dashboard | Welcome page, langkah cepat (Lengkapi Profil → Siapkan Dokumen → Pantau Status), notifikasi keamanan |
| MENU UTAMA | Pelaku Usaha | Profil usaha lengkap (nama, alamat, kota, provinsi, kodepos, telepon, email, perizinan, KBLI) |
| SERTIFIKASI HALAL | Tagihan / Invoice | Daftar tagihan pembayaran sertifikasi |
| SERTIFIKASI HALAL | Status Permohonan | Tracking status pengajuan sertifikasi |
| SERTIFIKASI HALAL | Pengajuan Self Declare Mandiri | Pengajuan sertifikasi mandiri untuk UMKM mikro (kuesioner) |
| SERTIFIKASI HALAL | Pengajuan Self Declare | Pengajuan self declare standar |
| SERTIFIKASI HALAL | Pengajuan Reguler | Pengajuan sertifikasi reguler (non-UMKM mikro) |
| KALKULATOR | Kalkulator Simulasi Perhitungan | Simulasi biaya sertifikasi halal |
| REGISTRASI SHLN | Invoice | Invoice khusus registrasi SHLN |
| REGISTRASI SHLN | Submissions | Pendaftaran sertifikat halal luar negeri |
Detail Halaman Pelaku Usaha:
Detail Pengajuan Self Declare Mandiri:
Detail Pengajuan Reguler:
Detail Submissions (SHLN):
| Kategori | Menu | Deskripsi |
|---|---|---|
| PENDAFTAR | Profile | Profil fasilitator (nama, jenis, wilayah kerja, PIC) |
| FACILITATE REGISTRATION | Daftar Fasilitas | Melihat program fasilitasi yang sudah dibuat & kuota |
| FACILITATE REGISTRATION | Entri Fasilitas | Membuat program fasilitasi baru |
| DAFTAR PELAKU USAHA | Pembatalan | Kelola permintaan pembatalan sertifikasi |
| DAFTAR PELAKU USAHA | Inquiry | Pencarian & review data pengajuan UMKM |
| INVOICE | Invoice Fasilitasi | Kelola tagihan fasilitasi |
Detail Profile Fasilitator:
Detail Daftar Fasilitas:
Detail Entri Fasilitas:
Detail Inquiry:
Detail Pembatalan:
Detail Invoice Fasilitasi:
| Fitur | Detail |
|---|---|
| Multi-bahasa | Switcher ID / EN (di header) |
| Login | Username + Password + reCAPTCHA |
| Registrasi | Tipe Pengguna (Fasilitator / Pelaku Usaha), Nama, Email, No HP (+62), Password, Konfirmasi |
| Lupa Password | Reset password via email |
| Dokumentasi | Link panduan penggunaan sistem |
| Theme Customizer | Primary color, Dark/Light mode (optional) |
| Integrasi | Terhubung ke OSS & BSE (referensi) |
| Komponen | Teknologi |
|---|---|
| Backend & Web UI | Laravel 12 (PHP 8.2+), Blade Templating |
| Auth & RBAC | Laravel Breeze + Spatie Permission |
| Database | MySQL 8.0+ |
| CSS Framework | Tailwind CSS |
| Build Tool | Vite |
| Localization | Laravel Localization (ID & EN) |
| API (Fase lanjutan) | Laravel Sanctum |
Perbedaan dari sistem existing: Kita menambahkan role Administrator yang tidak ada di ptsp.halal.go.id
| Modul | Fitur |
|---|---|
| Dashboard | Statistik global: total pengajuan, UMKM terdaftar, fasilitator aktif, sertifikat terbit. Charts & grafik. |
| Manajemen User | CRUD semua user, assign/ubah role, aktivasi/deaktivasi akun |
| Manajemen Role & Permission | Kelola role dan permission via Spatie |
| Manajemen Jenis Sertifikasi | CRUD jenis sertifikasi (Self Declare Mandiri, Self Declare, Reguler, SHLN) |
| Verifikasi & Approval | Review final pengajuan, terbitkan sertifikat, set nomor sertifikat |
| Manajemen Fasilitator | Lihat, verifikasi, dan kelola data semua fasilitator |
| Manajemen Pelaku Usaha | Lihat, verifikasi, dan kelola data semua pelaku usaha |
| Laporan & Ekspor | Laporan pengajuan, statistik per wilayah, export Excel/PDF |
| Activity Log | Log semua aktivitas user di sistem |
| Pengaturan Sistem | Konfigurasi umum aplikasi (nama, logo, kontak, dll) |
| Modul | Fitur |
|---|---|
| Dashboard | Statistik UMKM binaan, pengajuan pending, kuota tersisa |
| Profile | Kelola profil fasilitator (nama, jenis, wilayah, PIC) |
| Daftar Fasilitas | Lihat semua program fasilitasi & tracking kuota |
| Entri Fasilitas | Buat program fasilitasi baru (nama, tahun, jenis, periode, kuota) |
| Inquiry | Pencarian & review pengajuan UMKM dengan multi-filter + export Excel |
| Pembatalan | Kelola permintaan pembatalan sertifikasi |
| Invoice Fasilitasi | Lihat & kelola tagihan fasilitasi |
| Modul | Fitur |
|---|---|
| Dashboard | Welcome page, langkah cepat, notifikasi |
| Profil Pelaku Usaha | Kelola profil usaha (nama, alamat, perizinan, KBLI) |
| Pengajuan Self Declare Mandiri | Pengajuan sertifikasi mandiri + kuesioner self-assessment |
| Pengajuan Self Declare | Pengajuan self declare standar |
| Pengajuan Reguler | Pengajuan sertifikasi reguler |
| Status Permohonan | Tracking status semua pengajuan |
| Tagihan / Invoice | Lihat tagihan & status pembayaran |
| Kalkulator Simulasi | Simulasi biaya sertifikasi |
| Registrasi SHLN | Pendaftaran sertifikat halal luar negeri |
users — Data pengguna + profil fields (phone, address, id_number, avatar, is_active)businesses — Data pelaku usahacertification_types — Jenis sertifikasicertification_submissions — Pengajuan sertifikasiproducts — Produk dalam pengajuaningredients — Bahan baku produkproduction_processes — Proses produksiactivity_logs — Log aktivitas-- Profil Fasilitator (terpisah dari users)
facilitators
├── id, user_id (FK → users)
├── name, type (jenis fasilitator)
├── address, province, city, district, postal_code
├── email, pic_name, pic_phone
└── timestamps
-- Program Fasilitasi
facilitation_programs
├── id, facilitator_id (FK → facilitators)
├── code (kode fasilitasi), name, year, type (reguler/self_declare)
├── start_date, end_date, quota, remaining_quota
├── status (draft/active/completed/cancelled)
└── timestamps
-- Jawaban Kuesioner Self Declare
self_declare_answers
├── id, submission_id (FK → certification_submissions)
├── question_key, answer, notes
└── timestamps
-- Tagihan / Invoice
invoices
├── id, submission_id (FK → certification_submissions)
├── invoice_number, va_number (Virtual Account)
├── amount, due_date, paid_at
├── status (pending/paid/overdue/cancelled)
├── invoice_file, type (sertifikasi/fasilitasi/shln)
└── timestamps
-- Dokumen Pendukung (Polymorphic)
documents
├── id, documentable_id, documentable_type
├── type (nib/permit/certificate/kbli/other)
├── name, file_path, file_size
├── uploaded_by (FK → users)
└── timestamps
-- Permintaan Pembatalan
cancellation_requests
├── id, submission_id (FK → certification_submissions)
├── requested_by (FK → users), reason
├── status (pending/approved/rejected)
├── processed_by (FK → users), processed_at
└── timestamps
-- Update: businesses (tambah kolom)
+ nib_file (path file NIB)
+ country (negara, default: Indonesia)
+ kbli_code, kbli_name
+ permit_number, permit_issuer, permit_name
-- Update: certification_submissions (tambah kolom)
+ facilitation_program_id (FK → facilitation_programs)
+ type ENUM('self_declare_mandiri', 'self_declare', 'reguler', 'shln')
+ product_type, product_name
+ funding_source (sumber pembiayaan)
+ shln_number (untuk tipe SHLN)
+ renewal_of (FK → self, untuk perpanjangan)
+ registration_number (nomor pendaftaran/daftar)
+ verified_at, verified_by
UMKM FASILITATOR ADMINISTRATOR
───── ─────────── ─────────────
1. Lengkapi Profil Usaha
2. Pilih Jenis Pengajuan
├── Self Declare Mandiri
│ └── Isi Kuesioner
├── Self Declare
├── Reguler
└── SHLN
3. Isi Data Produk & Bahan
4. Upload Dokumen
5. Submit Pengajuan
│
├── [status: submitted] ──→ 6. Review & Verifikasi
│ ├── Setujui (verified)
│ ├── Minta Revisi (needs_revision)
│ └── Tolak (rejected)
│
│ ← [needs_revision] ────── Perbaiki & Submit Ulang
│
│ │ [verified] ──→ 7. Approval Final
│ │ ├── Approve (approved)
│ │ └── Reject (rejected)
│ │
│ │ 8. Terbitkan Sertifikat
│ │ └── [certified]
│ │ ├── Nomor Sertifikat
│ │ ├── Masa Berlaku
│ │ └── File Sertifikat
│
└── 9. Lihat Status & Download Sertifikat
10. Terima Invoice
11. Lakukan Pembayaran
halal_web/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── Admin/
│ │ │ │ ├── DashboardController.php
│ │ │ │ ├── UserController.php
│ │ │ │ ├── CertificationTypeController.php
│ │ │ │ ├── VerificationController.php
│ │ │ │ ├── FacilitatorController.php
│ │ │ │ ├── BusinessController.php
│ │ │ │ ├── ReportController.php
│ │ │ │ ├── ActivityLogController.php
│ │ │ │ └── SettingController.php
│ │ │ ├── Facilitator/
│ │ │ │ ├── DashboardController.php
│ │ │ │ ├── ProfileController.php
│ │ │ │ ├── FacilitationController.php
│ │ │ │ ├── InquiryController.php
│ │ │ │ ├── CancellationController.php
│ │ │ │ └── InvoiceController.php
│ │ │ ├── Umkm/
│ │ │ │ ├── DashboardController.php
│ │ │ │ ├── BusinessProfileController.php
│ │ │ │ ├── SelfDeclareController.php
│ │ │ │ ├── RegularSubmissionController.php
│ │ │ │ ├── StatusController.php
│ │ │ │ ├── InvoiceController.php
│ │ │ │ ├── CalculatorController.php
│ │ │ │ └── ShlnController.php
│ │ │ └── Auth/
│ │ └── Middleware/
│ │ └── RoleMiddleware.php
│ └── Models/
│ ├── User.php
│ ├── Business.php
│ ├── Facilitator.php
│ ├── FacilitationProgram.php
│ ├── CertificationType.php
│ ├── CertificationSubmission.php
│ ├── Product.php
│ ├── Ingredient.php
│ ├── ProductionProcess.php
│ ├── SelfDeclareAnswer.php
│ ├── Invoice.php
│ ├── Document.php
│ ├── CancellationRequest.php
│ └── ActivityLog.php
├── resources/views/
│ ├── layouts/
│ │ ├── app.blade.php (main layout)
│ │ ├── sidebar.blade.php
│ │ ├── header.blade.php
│ │ └── footer.blade.php
│ ├── admin/
│ │ ├── dashboard.blade.php
│ │ ├── users/
│ │ ├── certifications/
│ │ ├── verification/
│ │ ├── reports/
│ │ └── settings/
│ ├── facilitator/
│ │ ├── dashboard.blade.php
│ │ ├── profile/
│ │ ├── facilitation/
│ │ ├── inquiry/
│ │ ├── cancellation/
│ │ └── invoice/
│ ├── umkm/
│ │ ├── dashboard.blade.php
│ │ ├── business/
│ │ ├── submissions/
│ │ ├── status/
│ │ ├── invoice/
│ │ ├── calculator/
│ │ └── shln/
│ ├── auth/
│ └── components/
├── routes/
│ ├── web.php
│ ├── admin.php
│ ├── facilitator.php
│ └── umkm.php
├── lang/
│ ├── id/
│ └── en/
└── database/
├── migrations/
└── seeders/
| Role | Password | |
|---|---|---|
| Administrator | admin@halal.go.id | password123 |
| Fasilitator | priojava1@gmail.com | Jokopurwanto87 |
| UMKM | suprianto2125@gmail.com | Jokopurwanto87$ |
Catatan berikut adalah plan awal yang dibuat sebelum analisa sistem existing.
Dipertahankan sebagai referensi untuk keputusan arsitektur dan requirement keamanan/performa.
| Aspek | Plan Awal | Plan Final |
|---|---|---|
| Laravel Version | 11+ | 12 (sesuai project saat ini) |
| Role | SuperAdmin, Fasilitator, UMKM | Administrator, Fasilitator, UMKM |
| Database Design | 6 tabel dasar | 14+ tabel (berdasarkan analisa sistem existing) |
| Fitur Detail | Belum dispesifikasi | Detail lengkap per modul per role |
| Mobile App | React Native (Fase 3) | Ditunda, fokus Web UI dulu |
| Keamanan | CSRF, XSS, SQLi, Rate Limiting | Sama + ditambahkan ke implementasi |
| Performa | Redis caching & Queue | Diimplementasi saat fase Polish |
Terakhir diperbarui: 16 April 2026