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

  1. Flutter app with a local Hive cache as the first stop for every read and write.
  2. Google Apps Script web app as a tiny API in front of a Google Sheet.
  3. The cache syncs with the sheet whenever a connection is available.
  4. 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.