Aplikasi pencatat keuangan pribadi berbasis web dengan desain Neo-Brutalisme. Dibangun dengan PHP, MySQL, dan mendukung notifikasi serta pencatatan transaksi via WhatsApp menggunakan Fonnte Gateway.
- Dashboard — Ringkasan saldo, pemasukan & pengeluaran bulanan, grafik cashflow 7 hari
- Manajemen Transaksi — Tambah, lihat, dan hapus transaksi dengan kategori
- Laporan — Analisis breakdown per kategori dengan progress bar visual
- WhatsApp Bot — Catat transaksi & cek saldo langsung via chat WA (Fonnte)
- Notifikasi WA — Kirim notifikasi otomatis ke nomor WhatsApp pengguna
- PWA — Dapat diinstall di perangkat mobile sebagai Progressive Web App
- Admin View — Admin (user ID 1) dapat melihat data pengguna lain
- Keamanan — CSRF protection, password hashing, session hardening, XSS prevention
| Komponen | Teknologi |
|---|---|
| Backend | PHP 8.0+ |
| Database | MySQL / MariaDB |
| Frontend | Tailwind CSS, Font Awesome, Syne & Grotesk fonts |
| WA Gateway | Fonnte |
| PWA | Web Manifest + Service Worker |
- PHP 8.0+
- MySQL 5.7+ / MariaDB
- Web server (Apache/Nginx) atau XAMPP/Laragon
- Ekstensi PHP:
pdo_mysql,curl
-
Clone repository
git clone https://github.com/username/dompet-ku.git cd dompet-ku -
Import database
Buat database baru, lalu import file SQL:
mysql -u root -p dompet_ku < dompet_ku.sqlAtau gunakan
database.sqluntuk skema dasar tanpa data awal. -
Konfigurasi database
Edit file
config/database.php:define('DB_HOST', 'localhost'); define('DB_NAME', 'dompet_ku'); define('DB_USER', 'root'); define('DB_PASS', 'password_anda');
-
Konfigurasi Web Server
Arahkan document root ke folder
public/. Contoh virtual host Apache:<VirtualHost *:80> DocumentRoot "/path/to/dompet-ku/public" ServerName dompetku.local </VirtualHost>
-
Akses aplikasi
Buka browser dan akses URL server Anda. Daftar akun baru untuk mulai menggunakan.
Dompet-Ku mendukung pencatatan transaksi via WhatsApp menggunakan Fonnte.
- Daftar di fonnte.com dan hubungkan perangkat WhatsApp Anda
- Dapatkan Token API dari dashboard Fonnte
- Di aplikasi, buka Profil → isi nomor WA dan token Fonnte
- Set URL webhook Fonnte ke:
https://domain-anda.com/public/webhook.php - (Opsional) Edit
config/webhook_config.phpuntuk mengisi token default fallback
| Perintah | Fungsi |
|---|---|
.in [nominal] [catatan] |
Catat pemasukan |
.out [nominal] [catatan] |
Catat pengeluaran |
.saldo |
Cek saldo & ringkasan bulan ini |
.riwayat |
Lihat 5 transaksi terakhir |
.help |
Tampilkan panduan perintah |
Contoh:
.in 5000000 gaji bulan ini
.out 50000 beli bensin
.out 120000 bayar tagihan listrik
.saldo
Kategori terdeteksi otomatis dari kata kunci catatan (makan, bensin, gaji, dll).
dompet-ku/
├── actions/
│ └── add-transaction.php # Handler tambah transaksi
├── config/
│ ├── database.php # Konfigurasi koneksi database
│ ├── security.php # Fungsi keamanan & helper
│ └── webhook_config.php # Konfigurasi Fonnte webhook
├── public/
│ ├── api/
│ │ └── dashboard-data.php # API endpoint data dashboard (live update)
│ ├── icons/ # Ikon PWA
│ ├── index.php # Front controller & router
│ ├── manifest.json # PWA manifest
│ ├── service-worker.js # PWA service worker
│ └── webhook.php # Endpoint webhook Fonnte WA
├── templates/
│ ├── dashboard.php
│ ├── transactions.php
│ ├── reports.php
│ ├── profile.php
│ ├── login.php
│ ├── register.php
│ ├── header.php
│ └── footer.php
├── database.sql # Skema database
└── dompet_ku.sql # Database lengkap dengan data awal
- CSRF token pada semua form
- Password di-hash menggunakan
password_hash()(bcrypt) - Prepared statements PDO untuk mencegah SQL Injection
- Output di-escape dengan
htmlspecialchars()untuk mencegah XSS - Session hardening (httponly, secure cookie, regenerate on login)