Aku bagi dua bagian besar:
-
Mapping web aplikasi (fitur & modul)
-
Mapping database (struktur tabel & relasi)
Langsung ke inti.
Maping aplikasi web secara keseluruhan :
Dashboard
├─ Daily Activity
│ ├─ Timeline
│ ├─ Calendar
│ └─ Notes
├─ Finance
│ ├─ Transactions
│ ├─ Categories
│ ├─ Accounts
│ └─ Reports
│ ├─ Daily
│ ├─ Monthly
│ └─ Annual
├─ Investments
│ ├─ Plans
│ └─ Records
└─ Settings
├─ Profile
├─ Preferences
├─ Security
└─ Data & Backup
1️⃣ Mapping Web Aplikasi (Layer & Modul)
A. Layer Arsitektur (wajib jelas dari awal)
❗ Jangan lompat dari route langsung ke database. Itu ciri proyek emosional.
B. Modul Aplikasi (Domain-based, bukan menu-based)
1️⃣ Auth & User
Fungsi
- Login
- Register
- Session / Token
- Security
Endpoint contoh
2️⃣ Daily Activity
Fungsi
- Catatan harian
- Mood, tag, refleksi
- Bukan tempat logika keuangan
UI
- Kalender
- Timeline harian
Endpoint
3️⃣ Keuangan Personal
Ini jantung sistem, jangan ceroboh.
Sub-modul:
- Transaction
- Category
- Account
- Summary & Report
Endpoint inti
4️⃣ Investment Planning
Pisahkan plan vs realisasi.
Fungsi
- Target investasi
- Tracking kontribusi
- Proyeksi
Endpoint
5️⃣ Analytics & Dashboard
Ini layer baca, bukan tulis.
- Ringkasan keuangan
- Pola pengeluaran
- Korelasi aktivitas ↔ keuangan (opsional)
C. Mapping Menu (ringkas & manusiawi)
2️⃣ Mapping Database (PostgreSQL – versi waras)
A. User & Auth
B. Daily Activity
Index penting:
C. Keuangan Personal
1️⃣ Account (Dompet / Rekening)
❗ Jangan simpan saldo tetap. Hitung.
2️⃣ Category
3️⃣ Transaction (inti segalanya)
Aturan keras:
- Income = positif
- Expense = negatif
- Tidak boleh edit sembarangan
Index:
D. Relasi Activity ↔ Transaction (opsional tapi bersih)
Ini bridge table, bukan keharusan.
E. Investment
1️⃣ Investment Plan
2️⃣ Investment Records (Realisasi)
Proyeksi = query + kalkulasi, bukan kolom statis.
F. Ringkasan Relasi (biar kebayang)
3️⃣ Catatan Kritis yang Sering Diabaikan
- ❌ Jangan campur “daily note” dengan transaksi uang
- ❌ Jangan simpan saldo manual
- ❌ Jangan edit transaksi lama tanpa jejak
- ✅ Gunakan adjustment transaction
- ✅ Index dari awal
- ✅ NUMERIC, bukan FLOAT