Gambaran Umum
Sistem pengajuan pengeluaran kelas perusahaan yang dibangun dengan Arsitektur Bersih di ASP.NET MVC 10, Entity Framework Core, dan SQL Server. Menampilkan alur kerja persetujuan multi-tingkat, deteksi penipuan dengan penandaan real-time, pencocokan 3 arah (PO/Faktur/Penerimaan Barang), manajemen vendor, log audit yang tidak dapat diubah, dan dasbor keuangan komprehensif dengan pelacakan KPI. Mengimplementasikan hashing kata sandi BCrypt, enkripsi AES-256-GCM, dan pembatasan laju untuk keamanan.
Masalah
Departemen keuangan di organisasi menengah-besar kesulitan dengan proses requisisi pengeluaran manual yang rentan terhadap fraud, submission duplikat, pelanggaran kebijakan, dan jejak audit yang buruk. Sistem yang ada tidak memiliki deteksi fraud real-time, 3-way matching untuk verifikasi invoice, dan alur persetujuan komprehensif. Tidak ada solusi enterprise terjangkau yang menggabungkan pelacakan pengeluaran, persetujuan multi-tier, manajemen vendor, deteksi fraud, dan audit logging yang immutable dalam pola Clean Architecture yang cocok untuk pemeliharaan jangka panjang.
Solusi
Zentic adalah sistem requisisi pengeluaran tingkat enterprise yang dibangun dengan Clean Architecture pada ASP.NET MVC 10, Entity Framework Core, dan SQL Server. Menyediakan alur requisisi terstruktur (Draft → Submitted → L1 Manager → Finance Review → Approved/Rejected) dengan deteksi fraud real-time yang menandai pola mencurigakan (invoice duplikat, anomali jumlah, velocity checks). Sistem mengimplementasikan 3-way matching (PO ↔ Invoice ↔ Goods Receipt) sebelum persetujuan pembayaran, manajemen lifecycle vendor dengan validasi rekening bank, threshold persetujuan departemen hierarkis, dan audit log immutable untuk kepatuhan. Fitur keamanan mencakup password hashing BCrypt, enkripsi AES-256-GCM untuk data sensitif, dan rate limiting pada autentikasi.
Fitur Unggulan
Desain Clean Architecture
Pemisahan ketat dari concern di layer Domain (entities, value objects), Application (use cases, DTOs), Infrastructure (EF Core, repositories), dan Web (MVC controllers, views). Dependency Inversion memastikan testability dan maintainability.
Deteksi Fraud Real-time
Flagging otomatis pola mencurigakan: nomor invoice duplikat, anomali jumlah (>3σ dari rata-rata departemen), velocity checks (multiple submission dalam waktu singkat), dan submission di luar jam kerja. Tim keuangan menerima alert instan untuk item yang ditandai.
Verifikasi 3-Way Matching
Verifikasi Purchase Order, Invoice, dan Goods Receipt sebelum persetujuan pembayaran. Sistem melakukan cross-validasi kuantitas, jumlah, dan detail vendor di ketiga dokumen untuk mencegah fraud dan error.
Pipeline Persetujuan Multi-tier
Alur persetujuan yang dapat dikonfigurasi: Draft → Submitted → L1 Manager Approval → Finance Review → Final Approval/Rejection. Setiap tier memiliki role-based access control dan threshold persetujuan berdasarkan jumlah requisisi.
Manajemen Vendor & Departemen
Manajemen lifecycle vendor lengkap (registration → verification → active/inactive status) dengan validasi bank multi-account. Tree departemen hierarkis dengan threshold persetujuan yang dapat dikonfigurasi dan pelacakan conflict of interest.
Audit Log & Kepatuhan Immutable
Jejak audit append-only dengan desain tamper-evident. Setiap perubahan status, persetujuan, penolakan, dan modifikasi data dicatat dengan user, timestamp, dan alamat IP. Kemampuan ekspor untuk audit kepatuhan dan pelaporan regulasi.
Arsitektur
ASP.NET MVC 10 dengan Clean Architecture: Layer Domain (Entities, Value Objects, Domain Events), layer Application (Use Cases, DTOs, Interfaces), layer Infrastructure (EF Core, repository SQL Server, service BCrypt, service enkripsi AES), layer Web (MVC Controllers, Razor Views, Bootstrap 5 UI). Autentikasi via ASP.NET Core Identity dengan session berbasis cookie dan sliding expiration. Middleware rate limiting melindungi endpoint login (10 percobaan per jendela 15 menit). FluentValidation untuk validasi input di semua layer.
Cara Penggunaan
Prasyarat: .NET 10 SDK dan SQL Server LocalDB/Express. Clone repository, jalankan dotnet restore untuk install dependensi, lalu dotnet build. Luncurkan dengan dotnet run --project Zentic.Web (auto-migrate database pada startup pertama). Akses di https://localhost:7081. Akun default yang di-seed menyediakan role Admin, Finance, Manager, Staff, dan Auditor untuk testing. Buat requisisi sebagai Staff, submit untuk persetujuan, review sebagai Manager/Finance, dan audit via immutable logs.
Dampak & Hasil
Mendemonstrasikan implementasi Clean Architecture tingkat produksi di .NET 10 dengan pemisahan jelas antara layer Domain, Application, Infrastructure, dan Presentation. Mesin deteksi fraud mengurangi kerugian finansial dengan menandai pola mencurigakan sebelum persetujuan. 3-way matching mencegah pembayaran duplikat dan fraud invoice. Audit log immutable memastikan kepatuhan dengan SOX, GDPR, dan regulasi keuangan. Sistem persetujuan hierarkis dengan threshold yang dapat dikonfigurasi beradaptasi dengan struktur organisasi tanpa perubahan kode. Model keamanan BCrypt + AES-256-GCM memenuhi standar keamanan enterprise.
