Gambaran Umum

Sistem Pengajuan Pembayaran (PRS) kelas perusahaan untuk mengelola pengajuan pembayaran dengan persetujuan multi-tingkat, anggaran, vendor, pesanan pembelian, dan penyelesaian uang muka. Dibangun dengan arsitektur terpisah menggunakan backend API Laravel 12 dan frontend Next.js 16, diorkestrasi penuh melalui Docker. Fitur pembaruan SSE real-time, pencocokan 3 arah, pembayaran masal, RBAC, pencatatan audit, dan penyimpanan MinIO kompatibel S3.

Masalah

Organisasi kesulitan dengan proses requisisi pembayaran yang terfragmentasi di spreadsheet, email, dan persetujuan manual — menyebabkan keterlambatan pembayaran, overrun anggaran, risiko fraud, dan jejak audit yang buruk. Tim keuangan tidak memiliki visibilitas real-time ke requisisi yang tertunda, utilisasi anggaran, dan kinerja vendor. Tidak ada sistem terpadu yang mengintegrasikan pembuatan requisisi, persetujuan multi-tier, pelacakan anggaran, manajemen vendor, dan 3-way matching dalam satu platform dengan RBAC dan compliance logging yang tepat.

Solusi

Finance-Requester adalah Sistem Payment Requisition tingkat enterprise yang dibangun dengan Laravel 12 backend API dan Next.js 16 frontend, sepenuhnya diorkestrasi via Docker. Menyediakan manajemen requisisi end-to-end dengan alur persetujuan multi-tier yang dapat dikonfigurasi (L1, L2, L3), pelacakan anggaran real-time per departemen, registri vendor dengan manajemen rekening bank, pembuatan purchase order dengan 3-way matching (PO/Invoice/Receipt), pemrosesan pembayaran batch, dan audit logging yang immutable. Update real-time via Server-Sent Events menjaga semua stakeholder tetap tersinkronisasi.

Fitur Unggulan

Alur Persetujuan Multi-tier

Threshold persetujuan yang dapat dikonfigurasi (L1 Manager, L2 Senior Manager, L3 Finance Director) dengan routing otomatis berdasarkan jumlah requisisi. Setiap tier persetujuan memiliki permission berbasis role dan dapat menyetujui, menolak, atau meminta revisi.

Server-Sent Events Real-time

Implementasi custom SSE pool menyediakan update status langsung di semua klien yang terhubung. Perubahan status requisisi, tindakan persetujuan, dan update anggaran menyebar secara instan tanpa polling.

Pelacakan & Monitoring Anggaran

Alokasi anggaran tingkat departemen dan pelacakan utilisasi real-time. Dashboard menampilkan konsumsi anggaran, komitmen yang tertunda, dan alert overspending. Laporan anggaran bulanan/kuartalan dengan kemampuan drill-down.

Manajemen Vendor & Purchase Order

Manajemen lifecycle vendor lengkap dengan validasi rekening bank dan deklarasi conflict of interest. Pembuatan PO dengan 3-way matching (Purchase Order ↔ Invoice ↔ Goods Receipt) sebelum persetujuan pembayaran final.

Pemrosesan Pembayaran Batch

Kelompokkan requisisi yang disetujui ke dalam batch pembayaran untuk optimasi transfer bank. Ekspor file batch dalam format standar (NACHA, SEPA, CSV) untuk upload bank langsung.

Audit Trail & Kepatuhan

Audit log append-only yang immutable dengan verifikasi integritas kriptografis. Setiap tindakan dilacak ke user, timestamp, dan alamat IP. Ekspor laporan audit untuk review kepatuhan dan audit eksternal.

Arsitektur

Backend: Laravel 12 dengan autentikasi berbasis token Sanctum, custom SSE pool untuk update real-time, Redis untuk caching dan queue management, PostgreSQL 16 untuk data relasional. Frontend: Next.js 16 App Router dengan React 19, Zustand untuk state management, TanStack React Query untuk server state, Tailwind CSS v4 dengan Radix UI primitives. Infrastructure: Orkestrasi Docker Compose dengan reverse proxy NGINX, MinIO untuk object storage kompatibel S3, MailHog untuk testing email. Semua service berkomunikasi via jaringan internal Docker.

Cara Penggunaan

Clone repository dan setup environment variables (file .env untuk root, backend, frontend). Jalankan docker-compose up -d --build untuk memulai semua service (Laravel API, Next.js frontend, PostgreSQL, Redis, MinIO, MailHog, NGINX). Inisialisasi backend dengan composer install, php artisan key:generate, dan php artisan migrate --seed. Akses frontend di localhost:3001, API di localhost/api/v1, konsol MinIO di localhost:9001, dan MailHog di localhost:8026 untuk testing email.

Dampak & Hasil

Memberikan organisasi kemampuan payment requisition tingkat Fortune 500 tanpa biaya lisensi melalui arsitektur open-source. Orkestrasi Docker memastikan deployment konsisten di lingkungan development, staging, dan production. Sistem update real-time SSE menghilangkan kebutuhan refresh halaman konstan, meningkatkan pengalaman pengguna. 3-way matching mencegah pembayaran duplikat dan fraud. Penyimpanan MinIO kompatibel S3 menjaga biaya penyimpanan dokumen minimal sambil mempertahankan kompatibilitas AWS S3 untuk migrasi masa depan. Jejak audit komprehensif memastikan kepatuhan dengan regulasi keuangan.