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

48 lines
2.6 KiB
Markdown

# 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](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`.