Files
calcserubi/README.md
T
2026-10-20 13:16:38 +09:00

2.6 KiB

Kalkulator Cashback SERUBI — Bank Papua

Simulasi Tabungan/Giro + cashback SERUBI dibandingkan deposito, dengan halaman admin untuk mengubah parameter. PHP native + MySQL.

  • Kalkulator: http://localhost/calcserubi/
  • Admin: http://localhost/calcserubi/admin/ (saat pertama dibuka, Anda diminta membuat akun admin)

Instalasi

  1. Atur koneksi di config.php (default 127.0.0.1:3309, user root, database calcserubi). Di server, nilai ini bisa diganti lewat environment variable SERUBI_DB_HOST/PORT/NAME/USER/PASS.
  2. Buka aplikasinya. Database, tabel, dan parameter awal dari file Excel dibuat otomatis. Bisa juga lewat CLI: php database/migrate.php.
  3. Buka /admin/ dan buat akun admin pertama.

Perintah lain:

  • php database/migrate.php --reseed mengembalikan semua parameter ke nilai Excel.
  • php database/migrate.php --dump-params menampilkan parameter aktif dalam format JSON.

Versi JS/CSS (update langsung terlihat di klien)

Semua file JS/CSS dimuat dengan ?v=<versi>-<waktu ubah file> (lihat asset() di includes/helpers.php):

  • Setiap file yang diunggah ulang ke server otomatis mendapat URL baru, sehingga browser langsung memuat versi terbaru.
  • Halaman PHP dikirim dengan Cache-Control: no-cache, jadi selalu merujuk versi asset terbaru.
  • Asset boleh di-cache lama (.htaccess) karena URL-nya selalu berubah saat ada update.
  • Untuk menandai rilis, naikkan 'version' di config.php. Versi juga tampil di <meta name="app-version">.

Struktur

Path Isi
assets/js/engine.js Rumus perhitungan (port dari sheet COB), dipakai kalkulator, preview admin, dan test
index.php, assets/js/app.js Halaman kalkulator
admin/ Login, parameter bank, rate produk, rate deposito, porsi cashback, pengguna, riwayat
includes/ Koneksi DB, pemuatan parameter, auth, aksi admin
database/ schema.sql, defaults.php (nilai Excel), migrate.php
tests/ Validasi terhadap Excel, lihat docs/VALIDASI.md

Validasi

node tests/validate.js membandingkan engine (dengan parameter dari MySQL) terhadap 155 skenario yang dihitung oleh Excel. Hasil saat ini: 4.805/4.805 cocok. Detail ada di docs/VALIDASI.md.

Keamanan

Detail lengkap dan checklist server ada di docs/SECURITY.md. Wajib dikerjakan setelah deploy: HTTPS + SERUBI_FORCE_HTTPS=1, ServerTokens Prod dan TraceEnable Off di httpd.conf, user MySQL khusus (php database/migrate.php --create-db-user), dan PHP yang masih didukung.

Membuat admin pertama di server baru: php database/migrate.php --create-admin.