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
| Platform | Teknologi |
|---|---|
| Mobile | Flutter + Dart |
| Web | React + TypeScript |
| Backend | Firebase (Auth, Firestore) |
| State Management | Riverpod (Flutter), Zustand (React) |
| Charts | fl_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.

