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: 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. 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:

  1. Phase 1 (Renewal Priority): Automatically validates and transitions existing scholarship recipients prior to evaluating new applicants.
  2. 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.