Platform manajemen siklus penuh beasiswa (Scholarship Lifecycle Management) skala enterprise yang dirancang sebagai versi pengembangan dan evolusi arsitektural dari sistem BKK Kabupaten Madiun.

Jika proyek BKK berfokus pada digitalisasi satu program beasiswa daerah, platform ini berevolusi menjadi sistem generik multi-program yang mampu menangani beragam instansi dan kategori beasiswa secara fleksibel dari satu instalasi terpusat.

1. Arsitektur Siklus Penuh (Full-Lifecycle)

Platform ini mengelola seluruh fase beasiswa secara otomatis dari hulu ke hilir: draftopenrenewal_openrenewal_closedclosedselectingannounceddisbursed.

graph TD
    %% Ingress & Web Server
    Client[Browser / Mobile Client] -->|HTTPS / HTTP3| FP[FrankenPHP Caddy Server]
    FP -->|Worker Mode Memory| LO[Laravel Octane + Laravel 13]
    LO -->|Reactive UI| LW[Livewire v4 Components]
    LO -->|REST API 89 Endpoints| API[Sanctum Auth API Controllers]

    %% Storage & Queues
    LO -->|Transactional Data| PG[(PostgreSQL 16 Database)]
    LO -->|Cache DB0 & Session DB3| RD1[(Redis 7 Cluster)]
    LO -->|Async Queue Jobs DB2| RD2[(Redis Queue Broker)]
    LO -->|Encrypted Document Storage| S3[(MinIO S3-Compatible Storage)]
    
    %% Background Workers
    RD2 -->|Process Batch Scoring| QW[Supervisor Queue Workers]
    QW -->|Update Ranks & Ties| PG

2. Peningkatan Utama Dibandingkan Sistem Sebelumnya (BKK)

A. Dynamic Qualification Builder

Admin dapat merancang formulir kualifikasi dinamis per program tanpa perlu memodifikasi kode:

  • Pilihan ganda, rentang numerik IPK, esai, dan unggahan berkas bersyarat.
  • Pembobotan skor dinamis dengan dukungan aturan tiebreaker multi-level saat terjadi nilai kembar.

B. Two-Phase Batch Selection Engine

Proses seleksi penerima beasiswa berjalan secara asinkron di background worker:

  1. Fase 1 (Renewal Priority): Memvalidasi dan meloloskan mahasiswa penerima beasiswa perpanjangan (existing recipients) terlebih dahulu.
  2. Fase 2 (Ranking & Quotas): Memeringkatkan pendaftar baru berdasarkan bobot skor kualifikasi hingga memenuhi kuota utama dan menetapkan kuota cadangan secara otomatis.

C. Modul Perbendaharaan & Pencairan (Disbursement)

Dilengkapi modul khusus untuk bendahara dengan enkripsi data rekening bank, pencatatan status transfer dana (waiting, disbursed, failed), dan ekspor laporan berita acara pencairan resmi berformat PDF.

3. Keamanan & Performa Ekstrem

  • Laravel Octane + FrankenPHP: Aplikasi berjalan dalam mode worker in-memory dengan waktu respon API di bawah 20ms.
  • Data Encryption: Enkripsi tingkat kolom untuk data sensitif pendaftar (NIK, nomor telepon, dan nomor rekening perbankan).
  • MinIO Object Storage: Seluruh berkas pendaftar disimpan secara terisolasi pada storage privat yang aman dan terdistribusi.