# 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=-` (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 ``. ## 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](docs/VALIDASI.md). ## Keamanan Detail lengkap dan checklist server ada di [docs/SECURITY.md](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`.