Part 2 Maping Aplikasi - Proyek Aplikasi manajemen aktivitas harian + keuangan personal terintegrasi

🔍 Cari Sesuatu?

Gunakan pencarian di bawah ini untuk hasil terbaik!

Part 2 Maping Aplikasi - Proyek Aplikasi manajemen aktivitas harian + keuangan personal terintegrasi

Sury Mory Tech
0

Aku bagi dua bagian besar:

  1. Mapping web aplikasi (fitur & modul)

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

Client (Web / Mobile) ↓ API Layer (Flask Blueprint) ↓ Service Layer (Business Logic) ↓ Repository / ORM ↓ PostgreSQL

❗ 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

POST /auth/login POST /auth/register GET /auth/me


2️⃣ Daily Activity

Fungsi

  • Catatan harian
  • Mood, tag, refleksi
  • Bukan tempat logika keuangan

UI

  • Kalender
  • Timeline harian

Endpoint

GET /activities POST /activities PUT /activities/{id} DELETE /activities/{id}


3️⃣ Keuangan Personal

Ini jantung sistem, jangan ceroboh.

Sub-modul:

  • Transaction
  • Category
  • Account
  • Summary & Report

Endpoint inti

GET /finance/transactions POST /finance/transactions GET /finance/summary/daily GET /finance/summary/monthly


4️⃣ Investment Planning

Pisahkan plan vs realisasi.

Fungsi

  • Target investasi
  • Tracking kontribusi
  • Proyeksi

Endpoint

GET /investments/plans POST /investments/plans POST /investments/records GET /investments/projection


5️⃣ Analytics & Dashboard

Ini layer baca, bukan tulis.

  • Ringkasan keuangan
  • Pola pengeluaran
  • Korelasi aktivitas ↔ keuangan (opsional)


C. Mapping Menu (ringkas & manusiawi)

Dashboard ├─ Daily Activity ├─ Finance │ ├─ Transactions │ ├─ Categories │ ├─ Accounts │ └─ Reports ├─ Investments │ ├─ Plans │ └─ Records └─ Settings


2️⃣ Mapping Database (PostgreSQL – versi waras)

A. User & Auth

users - id (PK) - email (unique) - password_hash - created_at


B. Daily Activity

activities - id (PK) - user_id (FK) - date - title - description - mood - tags (JSONB) - created_at

Index penting:

(user_id, date)


C. Keuangan Personal

1️⃣ Account (Dompet / Rekening)

accounts - id (PK) - user_id (FK) - name - type (cash, bank, e-wallet)

❗ Jangan simpan saldo tetap. Hitung.



2️⃣ Category

categories - id (PK) - user_id (FK) - name - type (income | expense)


3️⃣ Transaction (inti segalanya)

transactions - id (PK) - user_id (FK) - account_id (FK) - category_id (FK) - date - amount NUMERIC(14,2) - note - created_at

Aturan keras:

  • Income = positif
  • Expense = negatif
  • Tidak boleh edit sembarangan

Index:

(user_id, date) (category_id)


D. Relasi Activity ↔ Transaction (opsional tapi bersih)

activity_transaction - activity_id (FK) - transaction_id (FK)

Ini bridge table, bukan keharusan.



E. Investment

1️⃣ Investment Plan

investment_plans - id (PK) - user_id (FK) - name - target_amount - expected_return_rate - monthly_target


2️⃣ Investment Records (Realisasi)

investment_records - id (PK) - plan_id (FK) - date - amount

Proyeksi = query + kalkulasi, bukan kolom statis.



F. Ringkasan Relasi (biar kebayang)

User ├─ Activities ├─ Accounts │ └─ Transactions ├─ Categories └─ Investment Plans └─ Investment Records


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

Posting Komentar

0 Komentar
Posting Komentar (0)
To Top