Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💰 Dompet-Ku

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.

PHP MySQL PWA


Fitur

  • 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

Tech Stack

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

Instalasi

Prasyarat

  • PHP 8.0+
  • MySQL 5.7+ / MariaDB
  • Web server (Apache/Nginx) atau XAMPP/Laragon
  • Ekstensi PHP: pdo_mysql, curl

Langkah-langkah

  1. Clone repository

    git clone https://github.com/username/dompet-ku.git
    cd dompet-ku
  2. Import database

    Buat database baru, lalu import file SQL:

    mysql -u root -p dompet_ku < dompet_ku.sql

    Atau gunakan database.sql untuk skema dasar tanpa data awal.

  3. 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');
  4. 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>
  5. Akses aplikasi

    Buka browser dan akses URL server Anda. Daftar akun baru untuk mulai menggunakan.


Integrasi WhatsApp (Fonnte)

Dompet-Ku mendukung pencatatan transaksi via WhatsApp menggunakan Fonnte.

Setup

  1. Daftar di fonnte.com dan hubungkan perangkat WhatsApp Anda
  2. Dapatkan Token API dari dashboard Fonnte
  3. Di aplikasi, buka Profil → isi nomor WA dan token Fonnte
  4. Set URL webhook Fonnte ke:
    https://domain-anda.com/public/webhook.php
    
  5. (Opsional) Edit config/webhook_config.php untuk mengisi token default fallback

Perintah WhatsApp

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).


Struktur Proyek

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

Keamanan

  • 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)

Lisensi

MIT License

About

Aplikasi pencatat keuangan pribadi berbasis PHP & MySQL dengan desain Neo-Brutalisme. Fitur dashboard, laporan kategori, notifikasi & bot transaksi via WhatsApp (Fonnte), dan siap diinstall sebagai PWA.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages