Personal · Mobile app
Walletrac
A personal finance tracker with a zero-cost backend.
A Flutter expense and income tracker that uses Google Sheets as its backend, works offline, and adds entries from an Android home-screen widget.
FlutterDartHiveApps Script
Problem
A personal expense tracker should be quick to use, work without a connection, and keep data somewhere its owner controls, without paying for a server.
Solution
Built a Flutter app that reads and writes a Google Sheet through Google Apps Script, caches everything locally with Hive so it works offline, and adds an Android home-screen widget with quick-add presets.
System architecture
- Flutter app with a local Hive cache as the first stop for every read and write.
- Google Apps Script web app as a tiny API in front of a Google Sheet.
- The cache syncs with the sheet whenever a connection is available.
- Android home-screen widget with quick-add presets that writes through the same path.
Backend logic
- The Apps Script endpoint handles reads and writes to the sheet, so there is no server to host.
- Defensive parsing of API payloads, with tests for malformed responses and Apps Script redirect quirks.
- Tests for date-parsing edge cases.
- BDT currency formatting and localization.
Tech stack
Mobile
- Flutter
- Dart
- Android home-screen widget
Storage
- Hive (local cache)
- Google Sheets
Backend
- Google Apps Script
Outcome / impact
- Runs at zero hosting cost.
- Data stays in a spreadsheet the owner controls.
- Logging an expense from the home screen takes seconds.
Result: A daily-use finance tracker with no hosting cost, and data that stays in the owner's own spreadsheet.