# Product Requirement Document (PRD) & Blueprint
# Dompet Pro — Aplikasi Catatan Keuangan Harian Mobile & Web

---

## 1. Ringkasan Eksekutif (Executive Summary)
**Dompet Pro** adalah aplikasi pencatatan keuangan harian pribadi dan usaha mikro berbasis web responsif (PHP & MySQL) yang dioptimasi khusus untuk kenyamanan akses melalui layar **handphone / smartphone**, serta tetap tampil elegan dan luas saat dibuka di desktop/laptop.

Aplikasi ini memudahkan pengguna melacak setiap pemasukan, pengeluaran harian, perpindahan dana antar dompet/rekening, kontrol anggaran bulanan, pencatatan utang-piutang, serta pemantauan target menabung secara instan, aman, dan tanpa iklan.

---

## 2. Karakteristik & Arsitektur Teknis
- **Bahasa & Backend**: PHP 8.x murni (Native OOP/Clean Architecture tanpa framework berat, menjamin kecepatan tinggi dan kemudahan deploy).
- **Database**: MySQL / MariaDB (`dompet_pro`).
  - **Host**: `127.0.0.1` / `localhost`
  - **Port**: `3306`
  - **User**: `root`
  - **Password**: `p18kFYfc366JkDDM`
- **Frontend / Styling**: Modern Vanilla CSS dengan design system fintech premium, glassmorphism halus, tipografi Plus Jakarta Sans, dan dark/light friendly contrast.
- **Mobile Experience (PWA Ready)**:
  - Mobile bottom navigation bar untuk navigasi jempol satu tangan.
  - Floating Quick Action Button (+) untuk input pengeluaran/pemasukan dalam 3 detik.
  - Modal bottom sheet yang responsif di HP.
  - Web App Manifest (`manifest.json`) sehingga bisa diinstal di Home Screen HP (Add to Home Screen) layaknya aplikasi Android/iOS native.
  - Dukungan QR Code & auto-detect IP lokal Wi-Fi untuk kemudahan akses dari handphone.
- **Visualisasi & Ikonografi**:
  - Lucide Icons modern.
  - Chart.js untuk grafik donat distribusi kategori dan grafik tren harian/bulanan.

---

## 3. Fitur Utama (Core Features)

### A. Dashboard Finansial Pintar
1. **Kartu Saldo Utama (Total Saldo Bersih)**: Akumulasi seluruh saldo akun/dompet aktif.
2. **Ringkasan Arus Kas**:
   - Pemasukan Bulan Ini (Hijau).
   - Pengeluaran Bulan Ini (Merah/Oranye).
   - Selisih / Sisa Bersih (Biru/Teal).
3. **Filter Periode Dinamis**: Hari Ini, Minggu Ini, Bulan Ini, Tahun Ini, atau Custom Tanggal.
4. **Grafik Visual Interaktif**:
   - Komposisi Pengeluaran per Kategori (Donut Chart).
   - Perbandingan Arus Kas Masuk vs Keluar (Bar/Line Chart).
5. **Daftar Transaksi Terbaru**: Riwayat transaksi terakhir dengan pemisahan tanggal otomatis.

### B. Multi-Akun & Dompet (Wallets)
- Mendukung berbagai jenis dompet:
  - 💵 **Uang Tunai (Cash)** di dompet fisik.
  - 🏦 **Rekening Bank** (BCA, Mandiri, BRI, BNI, Jago, dll.).
  - 📱 **E-Wallet** (GoPay, OVO, DANA, ShopeePay).
  - 📈 **Investasi / Lainnya** (Bibit, Reksadana, Emas).
- Saldo otomatis tersinkronisasi saat ada transaksi pemasukan, pengeluaran, atau transfer antar akun.
- Fitur **Transfer Saldo** tanpa mengubah total kekayaan bersih.

### C. Pencatatan Transaksi Cepat & Detail
- Input transaksi cepat (+ Pemasukan, - Pengeluaran, 🔄 Transfer).
- Input nominal Rupiah dengan format mata uang otomatis.
- Pilihan kategori berkode warna & icon visual.
- Input tanggal & jam transaksi.
- Catatan/keterangan transaksi.
- Pencarian dan filter transaksi berdasarkan kategori, akun, tipe, dan rentang tanggal.
- Edit & Hapus transaksi dengan auto-recalculate saldo dompet terkait.

### D. Anggaran Bulanan (Budgeting)
- Penetapan batas maksimal pengeluaran per kategori per bulan (misal: Makan Rp 2.000.000, Transport Rp 800.000).
- Visual Progress Bar indikator konsumsi anggaran:
  - 🟢 Hijau (< 70%): Aman.
  - 🟡 Kuning (70% - 99%): Peringatan mendekati batas.
  - 🔴 Merah (>= 100%): Melebihi anggaran (Overbudget).

### E. Utang & Piutang (Debts & Receivables)
- Pencatatan **Utang Saya** (kewajiban bayar ke orang/toko lain).
- Pencatatan **Piutang Saya** (dana dipinjam oleh teman/keluarga).
- Informasi: Nama orang, nominal, tanggal pinjam, jatuh tempo, catatan, dan status (Belum Lunas / Lunas).
- Tombol 1-klik "Tandai Lunas".

### F. Target Menabung (Savings Goals)
- Rencana tabungan jangka pendek & panjang (misal: Dana Darurat, Beli Motor, Liburan Akhir Tahun).
- Input target nominal, target tanggal, dan jumlah terkumpul.
- Tombol "Tambah Tabungan" untuk langsung menyetor ke target tujuan.

### G. Laporan & Ekspor Data
- Laporan Keuangan Harian & Bulanan yang rapi.
- Ekspor data transaksi ke format **Excel / CSV**.
- Tampilan cetak / **Print PDF Preview** yang sudah disesuaikan untuk dokumen laporan cetak.

---

## 4. Struktur Database MySQL (`dompet_pro`)
1. `accounts`: Menyimpan data dompet/rekening.
2. `categories`: Kategori pengeluaran & pemasukan.
3. `transactions`: Riwayat transaksi harian.
4. `budgets`: Batas pengeluaran bulanan per kategori.
5. `debts`: Catatan utang & piutang beserta jatuh tempo.
6. `savings_goals`: Target dan progres tabungan.
7. `app_settings`: Konfigurasi aplikasi.

---

## 5. Panduan Akses di Handphone (Mobile Access)
1. Pastikan Handphone dan Komputer terhubung pada jaringan **Wi-Fi yang sama**.
2. Jalankan server lokal:
   ```bash
   php -S 0.0.0.0:8000
   ```
3. Buka browser di Handphone (Chrome/Safari) dan kunjungi URL IP komputer:
   ```
   http://192.168.100.13:8000
   ```
4. Tambahkan ke Layar Utama (**Add to Home Screen**) agar aplikasi terbuka dalam layar penuh tanpa bilah URL (Full App Mode).

---

## 6. Poster Dokumentasi Resmi & Infografis
- **Poster Web & Cetak PDF A4**: Tersedia di file [poster.html](file:///e:/dompetku/poster.html) atau URL `http://localhost:8000/poster.html`.
- **Aset Gambar Poster Infografis**: Tersedia di [poster_dompet_pro.jpg](file:///e:/dompetku/assets/poster_dompet_pro.jpg).
- **Materi Dokumentasi Meliputi**:
  - Manfaat strategis (100% Privasi mandiri, anti-boncos, tertib utang-piutang, impian menabung).
  - Fungsi & fitur teknis lengkap (multi-wallet, quick transaction, budgeting, analitik, ekspor).
  - Panduan alur penggunaan langkah-demi-langkah (start server, akses HP, PWA install, catat transaksi).
  - Arsitektur keamanan anti-hacker (PDO prepared statements, CSRF protection, anti-webshell).