01. Dashboard Utama: Saldo Likuid & Kuota Belanja Harian
Tampilan beranda finansial komprehensif menyajikan total saldo riil (Rp 4.480.000), arus kas bulanan, batas belanja aman harian (Rp 445.000/hari), dan estimasi saldo akhir bulan.
Aplikasi pencatatan dan monitoring keuangan pribadi berbasis Flutter dengan arsitektur offline-first, pemindaian struk otomatis berbasis on-device OCR (Google ML Kit), pencadangan privat ke Google Drive Hidden AppData, dan enkripsi lokal SQLite AES-256.
Data-at-rest SQLite terenkripsi penuh dengan SQLCipher & Android Keystore.
Pemindaian struk belanja 100% lokal berbasis Google ML Kit tanpa biaya server.
Pencadangan awan privat terisolasi ke Google Drive Hidden AppData Folder.
Pemisahan Domain, Data, & Presentation layer dengan BLoC State Management.
Banyak aplikasi keuangan modern yang mewajibkan pengguna mengunggah data transaksi sensitif mereka ke server cloud komersial. Pendekatan ini rentan terhadap risiko privasi dan kebocoran data, serta membuat aplikasi tidak dapat digunakan saat koneksi internet terputus.
Tantangan rekayasa utama dalam proyek ini adalah bagaimana membangun sistem pencatatan keuangan berfitur lengkap yang 100% mandiri di perangkat lokal, mampu mengekstrak struk belanja fisik secara instan tanpa API cloud eksternal, dan tetap menyediakan mekanisme backup awan yang aman tanpa perlu memelihara infrastruktur server backend berbayar.
Saya merancang dan membangun arsitektur aplikasi mobile berbasis Flutter dengan pola Clean Architecture (Feature-First) yang memisahkan secara ketat antara Domain, Data, dan Presentation layer menggunakan BLoC State Management.
Sistem ini menggabungkan database lokal Drift SQLite dengan enkripsi data-at-rest SQLCipher AES-256 pada background isolate terpisah, engine pemindai struk cerdas Google ML Kit on-device, serta sinkronisasi serverless langsung ke Google Drive Hidden AppData folder.
Drift ORM berjalan di Dart isolate terpisah dengan enkripsi SQLCipher berbasis Android Keystore untuk fluiditas 60/120 FPS.
Pemindaian struk belanja lokal 100% offline dengan regex parser bertingkat untuk ekstraksi nominal dan tanggal instan.
Pencadangan privat terenkripsi langsung ke folder tersembunyi Google Drive tanpa memerlukan infrastruktur server perantara.
Kalkulasi plafon belanja adaptif per hari berdasarkan sisa waktu kalender dan pembagian pos anggaran 3 pilar.
Klik pada gambar mana pun untuk membuka mode Pan & Zoom layar penuh, memperbesar detail teks/menu, dan bernavigasi antar tangkapan layar.
Tampilan beranda finansial komprehensif menyajikan total saldo riil (Rp 4.480.000), arus kas bulanan, batas belanja aman harian (Rp 445.000/hari), dan estimasi saldo akhir bulan.
Akses pemindaian struk belanja fisik berbasis Google ML Kit On-Device OCR tanpa ketergantungan server eksternal, mengekstrak total nominal, tanggal, dan nama merchant secara instan.
Visualisasi interaktif fl_chart komposisi pengeluaran kategori serta perincian proporsi belanja (Kategori Lainnya 71% vs Makanan & Minuman 29%) lengkap dengan persentase dan nominal riil.
Kartu dompet multi-akun terintegrasi (Kas Tunai, Livin' by Mandiri, SeaBank, ShopeePay) dilengkapi widget pelacak progres target tabungan laptop serta indikator utang piutang.
Monitoring penggunaan pagu anggaran belanja (Rp 20.000 dari plafon Rp 1.800.000) terbagi atas 3 pilar: Kebutuhan Pokok (Needs), Keinginan (Wants), dan Tabungan Investasi (Savings).
Ringkasan perbandingan Utang Saya (Rp 50.000) vs Piutang Saya (Rp 50.000) dengan selisih bersih Net Rp 0, pelacakan nama peminjam, dan pencatatan terintegrasi ke mutasi dompet.
Direktori transaksi terulang aktif (seperti Gaji Bulanan Rp 4.500.000) dengan jadwal eksekusi otomatis tanggal 28 tiap bulan di latar belakang via Android WorkManager.
Perlindungan otentikasi biometrik sidik jari/wajah (local_auth), enkripsi penuh database SQLite Data-at-Rest via SQLCipher AES-256 & Android Keystore, serta integrasi Google Drive Hidden AppData.
Dipilih untuk performa maksimal, keamanan kode, dan kemudahan pemeliharaan.
Kalkulasi agregasi pengeluaran bulanan dan filtering ribuan mutasi transaksi pada SQLite reguler berisiko memblokir main UI thread sehingga memicu frame drop.
Mengonfigurasi Drift ORM untuk berjalan pada Dart Background Isolate terpisah, memanfaatkan NativeDatabase.createInBackground() sehingga seluruh operasi I/O dan enkripsi berjalan paralel tanpa mengganggu fluiditas animasi UI.
Karakter struk belanja kasir sering kali pudar, teks miring, serta memiliki format penulisan angka desimal dan tanggal yang sangat beragam antara satu minimarket dengan yang lain.
Menerapkan pipeline pra-pemrosesan citra dengan kompresi proporsional (flutter_image_compress) dan engine regex parser bertingkat yang mencari kata kunci "Total / Bayar / Subtotal" serta format mata uang Rupiah untuk mengisolasi nominal valid secara akurat.
Pencadangan langsung ke Google Drive AppData berisiko menimpa berkas cadangan jika terjadi pemulihan tidak terduga atau file korup saat koneksi terputus di tengah proses.
Membangun protokol rotasi cadangan otomatis yang memverifikasi integritas checksum SHA-256 file sebelum penimpaan, serta mempertahankan riwayat 5 versi cadangan terbaru dengan timestamp terisolasi.