Sistem Penyaluran Dana
Aplikasi manajemen keuangan dengan workflow approval bertingkat untuk organisasi yang memerlukan transparansi dan akuntabilitas dalam penyaluran dana.
100% Complete
Semua fitur telah diimplementasikan dan siap produksi
Multi-Role System
5 level role dengan hak akses yang berbeda-beda
Workflow Approval
Proses persetujuan bertingkat yang terstruktur
Teknologi yang Digunakan
Backend
- Laravel 12
- PHP 8.2+
- MySQL 8.0+
Frontend
- Bootstrap 5
- JavaScript ES6+
- DataTables
Fitur Utama
Sistem Autentikasi & Role
Login, register, dan manajemen role user dengan 4 level akses berbeda
- Multi-role access control
- Session management
- Role-based restrictions
Workflow Approval
Sistem persetujuan bertingkat dengan validasi role dan notifikasi
- Approval verifikator
- Approval bendahara
- Status tracking
PDF Generator
Generate dokumen resmi dengan tanda tangan digital dan branding
- Digital signature
- Dynamic branding
- Professional layout
Penyaluran Dana
Modul lengkap untuk pengelolaan penyaluran dana ke mustahik
- Multi-recipient support
- Advanced filtering
- Export capabilities
Dashboard & Reporting
Dashboard interaktif dan sistem pelaporan komprehensif
- Real-time statistics
- Role-based dashboard
- Excel export
Settings Management
Pengaturan lembaga, logo, dan konfigurasi sistem
- Institution branding
- Logo management
- System configuration
System Requirements
Server Requirements
- PHP: 8.2 atau lebih tinggi
- MySQL: 8.0 atau MariaDB 10.4+
- Web Server: Apache 2.4+ atau Nginx 1.18+
- Memory: Minimum 512MB RAM
- Storage: Minimum 1GB disk space
PHP Extensions
- BCMath PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- Mbstring PHP Extension
- OpenSSL PHP Extension
- PDO PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- GD PHP Extension
- Zip PHP Extension
Development Tools (Optional)
- Node.js: 16+ (untuk asset compilation)
- NPM: 8+ atau Yarn 1.22+
- Composer: 2.0+
- Git: Untuk version control
Instalasi
1. Extract File Aplikasi
Download dan extract file zip aplikasi ke dalam folder yang diinginkan:
# Extract file sistem-penyaluran-dana.zip
# Pindahkan ke folder htdocs (XAMPP) atau www (WAMP)
# Contoh lokasi: C:\xampp\htdocs\sistem-penyaluran-dana
2. Buka Command Prompt
Buka Command Prompt (CMD) dan masuk ke direktori aplikasi:
# Masuk ke direktori aplikasi
cd C:\xampp\htdocs\sistem-penyaluran-dana
# Atau sesuaikan dengan lokasi folder Anda
3. Install Dependencies
# Install PHP dependencies
composer install
# Install NPM dependencies
npm install
3. Environment Configuration
# Copy environment file
copy .env.example .env
# Generate application key
php artisan key:generate
4. Database Setup
Edit file .env dan sesuaikan konfigurasi database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sistem_penyaluran_dana
DB_USERNAME=root
DB_PASSWORD=
5. Run Migration & Seeder
# Create database tables
php artisan migrate
# Seed initial data
php artisan db:seed
6. Storage Link
# Create storage symbolic link
php artisan storage:link
7. Start Development Server
# Start Laravel development server
php artisan serve
# Aplikasi akan berjalan di: http://localhost:8000
Konfigurasi
Environment Variables
Berikut adalah konfigurasi penting dalam file .env:
| Variable | Description | Default |
|---|---|---|
APP_NAME |
Nama aplikasi | "Sistem Penyaluran Dana" |
APP_ENV |
Environment aplikasi | local/production |
APP_DEBUG |
Mode debug | true/false |
APP_URL |
URL aplikasi | http://localhost |
DB_* |
Konfigurasi database | MySQL settings |
MAIL_* |
Konfigurasi email (optional) | SMTP settings |
File Permissions
Pastikan folder berikut memiliki permission yang tepat:
# Set proper permissions
chmod -R 775 storage/
chmod -R 775 bootstrap/cache/
chown -R www-data:www-data storage/
chown -R www-data:www-data bootstrap/cache/
Default User Accounts
Setelah menjalankan seeder, akun default berikut akan tersedia:
| Role | Password | |
|---|---|---|
| Super Admin | admin@example.com | password |
| Admin Penyaluran | penyaluran@example.com | password |
| Verifikator | verifikator@example.com | password |
| Bendahara | bendahara@example.com | password |
| Direksi | direksi@example.com | password |
Role & Permissions
Sistem ini menggunakan 5 level role dengan hak akses yang berbeda-beda sesuai dengan tanggung jawab masing-masing.
Super Admin
Full Admin Access: Kontrol penuh sistem dan data master
- View semua data
- User management (CRUD)
- Wilayah management (CRUD)
- Akun bank management (CRUD)
- Pengaturan lembaga
- Download PDF & Export Excel
Admin Penyaluran
Fokus: Mengelola pengajuan dan penyaluran dana
- Buat pengajuan dana
- Kelola penyaluran dana
- CRUD Master data
- Kelola data mustahik (CRUD)
- Download PDF & Export Excel
- Tidak bisa approve
Verifikator
Tugas: Verifikasi dan approval tahap pertama
- Review pengajuan dana
- Approve/reject pengajuan
- Approve/reject penyaluran
- View dashboard khusus
- Digital signature
- Download PDF & Export Excel
- Tidak bisa create data
Bendahara
Tanggung Jawab: Persetujuan keuangan dan pencairan
- Final approval dana
- Kelola pencairan dana
- Approve penyaluran
- Monitor keuangan
- Kelola akun bank
- Digital signature
- Download PDF & Export Excel
Direksi
Akses: View dan monitoring semua aktivitas
- View semua data
- Dashboard monitoring
- Export reports
- View activity logs
- Download PDF & Export Excel
- Tidak bisa create/edit
- Tidak bisa approve
Matriks Hak Akses Lengkap
| Modul/Fitur | Super Admin | Admin Penyaluran | Verifikator | Bendahara | Direksi |
|---|---|---|---|---|---|
| 📊 DASHBOARD & MONITORING | |||||
| Dashboard | Read | Read | Read | Read | Read |
| Data Export & Reports | Download/Export | Download/Export | Download/Export | Download/Export | Download/Export |
| 🏗️ MASTER DATA | |||||
| Master Data (Asnaf, Jenis Data, Program, Bank, Sumber Dana, Jenis Uang Muka) |
Read | CRUD | Read | Read | Read |
| Kelola Data (Mustahik, Penanggung Jawab, Divisi, Sub Program) |
Read | CRUD | Read | Read | Read |
| 👥 USER & SYSTEM MANAGEMENT | |||||
| User Management | CRUD | No Access | No Access | No Access | No Access |
| Wilayah Management (Provinsi, Kota, Kecamatan, Kelurahan) |
CRUD | No Access | No Access | No Access | No Access |
| Kelola Akun Bank | CRUD | No Access | No Access | CRUD | Read |
| Settings Lembaga | CRUD | Read | No Access | No Access | No Access |
| 💰 WORKFLOW KEUANGAN | |||||
| Data Mustahik | Read | CRUD | Read | Read | Read |
| Pengajuan Dana | Read | Create/Edit | Read | Read | Read |
| Approval Verifikator | No Access | No Access | Approve | No Access | No Access |
| Approval Bendahara | No Access | No Access | No Access | Approve | No Access |
| Pencairan Dana | Read | Read | Read | Create/Edit | Read |
| Penyaluran Dana | Read | Create/Edit | Approve | Approve | Read |
Catatan Penting
- Security: Semua akses divalidasi middleware
- Profile: Semua role dapat edit profile sendiri
- Logout: Tersedia untuk semua role
Workflow Rules
- Pengajuan → Verifikator → Bendahara
- Tidak bisa approve pengajuan sendiri
- Digital signature wajib untuk approval
Workflow Approval
Sistem ini menggunakan workflow approval bertingkat untuk memastikan transparansi dan akuntabilitas dalam setiap proses penyaluran dana.
Alur Persetujuan Pengajuan Dana
1. Admin Penyaluran
Membuat pengajuan dana2. Verifikator
Review & approve/reject3. Bendahara
Final approvalStatus Tracking
- Draft: Belum disubmit
- Pending: Menunggu approval
- Approved: Disetujui verifikator
- Final Approved: Disetujui bendahara
- Rejected: Ditolak
System Features
- Digital Signature: Tanda tangan elektronik
- PDF Generation: Laporan otomatis
- Data Export: Excel dan PDF
- Dashboard: Real-time monitoring
Workflow Rules
- Setiap pengajuan harus melalui approval berurutan
- Verifikator tidak dapat approve pengajuan yang dibuat sendiri
- Bendahara hanya dapat approve setelah verifikator approve
- Rejection di level manapun akan menghentikan workflow
- Digital signature wajib untuk approval
Modul Aplikasi
Master Data
Pengelolaan data referensi dan konfigurasi sistem
- Divisi
- Penanggung Jawab
- Sumber Dana
- Jenis Uang Muka
- Asnaf
- Program & Sub Program
- Bank
- Wilayah Indonesia
User Management
Manajemen pengguna dan hak akses sistem
- Registrasi User
- Manajemen Profile
- Role Assignment
- Digital Signature
- Activity Log
- Permission Control
Pengajuan Dana
Proses pengajuan dan persetujuan dana
- Buat Pengajuan Baru
- Edit Pengajuan Draft
- Workflow Approval
- Tracking Status
- Approval Comments
- Generate PDF
Pencairan Dana
Pengelolaan pencairan dana yang telah disetujui
- Buat Pencairan
- Jadwal Pencairan
- Metode Pembayaran
- Bukti Transfer
- Status Monitoring
Penyaluran Dana
Distribusi dana kepada mustahik
- Kelola Data Mustahik
- Buat Penyaluran
- Multi-Recipient
- Kalkulasi Otomatis
- Advanced Filtering
- Export Excel/PDF
Dashboard & Reports
Analisis dan pelaporan komprehensif
- Role-based Dashboard
- Real-time Statistics
- Laporan Periodik
- Export Excel
- Print Reports
- Advanced Search
Fitur Tambahan
Settings Lembaga
Konfigurasi identitas, logo, dan branding lembaga
PDF Generator
Generate dokumen resmi dengan tanda tangan digital
Data Export/Import
Backup dan restore data sistem
Arsitektur Sistem
Application Layer
- Presentation Layer: Blade Templates + Bootstrap 5
- Business Logic: Controllers & Services
- Data Layer: Eloquent ORM + MySQL
- Security Layer: Middleware & Auth
Directory Structure
app/
├── Http/
│ ├── Controllers/ # Business Logic
│ └── Middleware/ # Request Filters
├── Models/ # Data Models (Eloquent)
└── Providers/ # Service Providers
resources/
├── views/
│ ├── layouts/ # Layout Templates
│ ├── dashboard/ # Dashboard Views
│ ├── pengajuan/ # Pengajuan Views
│ ├── penyaluran/ # Penyaluran Views
│ └── master-data/ # Master Data Views
├── css/ # Stylesheets
└── js/ # JavaScript Files
database/
├── migrations/ # Database Schema
├── seeders/ # Initial Data
└── factories/ # Model Factories
public/
├── build/ # Compiled Assets
├── storage/ # Public Storage Link
└── index.php # Entry Point
config/ # Configuration Files
routes/ # Route Definitions
storage/ # File Storage & Logs
Design Patterns
MVC Pattern
Separation of concerns dengan Model-View-Controller
Repository Pattern
Abstraksi layer untuk data access
Middleware Pattern
Request filtering dan authentication
Database Schema
Sistem menggunakan database MySQL dengan 20+ tabel yang saling terintegrasi untuk mendukung semua fitur aplikasi.
User Management
users- Data penggunapassword_reset_tokens- Reset passwordsessions- Session management
Master Data
divisis- Divisi organisasipenanggung_jawabs- PJ divisisumber_danas- Sumber pendanaanprograms- Program kerjasub_programs- Sub program
Transaction Data
pengajuans- Pengajuan danapencairans- Pencairan danapenyalurans- Penyaluran danapenyaluran_details- Detail penyaluran
Supporting Data
mustahiks- Data penerimaasnafs- Kategori asnafbanks- Data bankprovinces, cities, districts, villages- Wilayah
Database Relationships
| Relationship Type | Parent Table | Child Table | Description |
|---|---|---|---|
| One-to-Many | users | pengajuans | User dapat membuat banyak pengajuan |
| One-to-Many | pengajuans | penyalurans | Pengajuan dapat memiliki banyak penyaluran |
| Many-to-Many | penyalurans | mustahiks | Penyaluran ke banyak mustahik via detail |
| Belongs-to | mustahiks | provinces/cities | Lokasi mustahik berdasarkan wilayah |
Keamanan Sistem
Authentication & Authorization
- Session-based Auth: Laravel's built-in authentication
- Role-based Access: 4-level role system
- Route Protection: Middleware validation
- Permission Check: Every action validated
Data Protection
- Input Validation: Server-side validation
- CSRF Protection: Laravel's CSRF tokens
- SQL Injection: Eloquent ORM protection
- XSS Protection: Blade template escaping
Troubleshooting
Solusi:
# Clear cache
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
# Set proper permissions
chmod -R 775 storage/ bootstrap/cache/
Solusi:
- Periksa konfigurasi database di file
.env - Pastikan MySQL service berjalan
- Test koneksi:
php artisan migrate:status - Restart database service jika perlu
Solusi:
# Generate application key
php artisan key:generate
# Pastikan .env file ada
cp .env.example .env
Solusi:
# Linux/Mac
sudo chown -R www-data:www-data storage/ bootstrap/cache/
sudo chmod -R 775 storage/ bootstrap/cache/
# Windows (run as Administrator)
icacls storage /grant IIS_IUSRS:F /T
icacls bootstrap\cache /grant IIS_IUSRS:F /T
- Session driver tidak terkonfigurasi dengan benar
- Database seeder belum dijalankan
- Password hash tidak match
# Re-seed database
php artisan migrate:fresh --seed
# Clear session
php artisan session:table
php artisan migrate
# Test dengan akun default
Email: admin@example.com
Password: password
storage/logs/laravel.log untuk informasi error yang lebih detail.
Changelog
Version 1.0.0 - Final Release
08 May 2026✨ Features:
- Complete workflow approval system
- PDF generation with digital signatures
- Settings management system
- Dynamic branding
- Comprehensive documentation