An enterprise-grade Scholarship Lifecycle Management platform designed as an architectural evolution and generalized expansion of the municipal BKK Madiun system.
While the BKK project focused on digitizing a single regional scholarship workflow, this platform was re-architected into a generic multi-program system capable of managing heterogeneous scholarship programs, scoring rules, and disbursement lifecycles across diverse institutions from a unified central deployment.
1. Full-Lifecycle Architecture
The platform governs the entire lifecycle of scholarship programs autonomously:
draft → open → renewal_open → renewal_closed → closed → selecting → announced → disbursed.
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. Key Architectural Upgrades over the BKK Foundation
A. Dynamic Qualification Builder
Enables program administrators to design custom, multi-step eligibility criteria on the fly without writing code:
- Radio options, multi-select, GPA numeric intervals, essays, and conditional file uploads.
- Dynamic scoring weights and multi-tiered tiebreaker resolution algorithms for identical scores.
B. Two-Phase Batch Selection Engine
Asynchronous background scoring pipelines:
- Phase 1 (Renewal Priority): Automatically validates and transitions existing scholarship recipients prior to evaluating new applicants.
- Phase 2 (Scoring & Quota Ranking): Scores incoming applicants against program-specific matrices, populating primary awardee quotas and assigning reserve waitlists.
C. Treasury & Disbursement Module
Dedicated workspace for treasurers featuring encrypted banking information, disbursement lifecycle tracking (waiting, disbursed, failed), and official PDF export generation.
3. Security & High-Throughput Performance
- Laravel Octane + FrankenPHP: Operates in high-performance memory-persistent worker mode delivering sub-20ms response latencies.
- Field-Level Encryption: Column-level encryption for sensitive applicant attributes (National IDs, banking credentials, contact details).
- MinIO Object Storage: Isolated S3-compatible private document storage safeguarding uploaded applicant credentials.