DEC 10, 2023
4 MIN READ

FinTrack

Personal finance tracking application built across multiple platforms.

Overview

FinTrack membantu pengguna melacak pengeluaran harian, membuat anggaran bulanan, dan memvisualisasikan kebiasaan keuangan mereka. Dibangun dengan Flutter untuk mobile dan React untuk web, keduanya berbagi backend Firebase yang sama.

Fitur Utama

  • Pencatatan Transaksi — Tambah pemasukan dan pengeluaran dengan kategori dan catatan
  • Anggaran Bulanan — Tetapkan batas anggaran per kategori dan pantau penggunaan
  • Dashboard Visual — Grafik pie dan bar untuk melihat distribusi pengeluaran
  • Sync Real-time — Data sinkron otomatis antar perangkat via Firebase Firestore
  • Export Laporan — Export data ke CSV untuk analisis lebih lanjut

Stack Teknologi

PlatformTeknologi
MobileFlutter + Dart
WebReact + TypeScript
BackendFirebase (Auth, Firestore)
State ManagementRiverpod (Flutter), Zustand (React)
Chartsfl_chart (Flutter), Recharts (React)

Arsitektur

Proyek ini menggunakan arsitektur repository pattern untuk memisahkan logika bisnis dari UI, memudahkan reuse kode antara Flutter dan React.

// Contoh service layer yang sama digunakan di React
class TransactionService {
  async addTransaction(data: Transaction): Promise<void> {
    await db.collection('transactions').add({
      ...data,
      userId: auth.currentUser?.uid,
      createdAt: serverTimestamp(),
    });
  }
}

Pembelajaran

Proyek ini mengajarkan pentingnya desain API yang konsisten agar logika bisnis yang sama bisa diimplementasikan di dua platform berbeda tanpa duplikasi berlebihan.