Skip to content

Repository files navigation

Expense Widget

An Android expense tracker that turns ČSOB SmartBanking card-payment notifications into monthly spending insights, budgets, and home screen widgets.

Note

Expense Widget currently supports positive EUR card transactions from Slovak-language ČSOB SmartBanking notifications on Android 7.0 and newer.

Features

  • Automatically records ČSOB card expenses from Android notifications.
  • Shows monthly totals, transaction history, merchants, and payment details.
  • Tracks progress against a configurable monthly budget.
  • Provides a compact 1×1 monthly-spending widget and a 2×1 budget widget.
  • Provides a Wear OS budget tile with the spent amount, percentage, and progress.
  • Stores expense data and settings locally on the device.
  • Supports light and dark system themes.

How it works

  1. The user grants Android notification access to Expense Widget.
  2. A native notification listener filters events from the ČSOB SmartBanking app.
  3. Supported card-transaction notifications are parsed, normalized, and stored in a local SQLite database.
  4. The app and its widgets update with the current month's spending and budget progress.

Expense Widget does not connect to a bank API and does not require ČSOB credentials.

Privacy

Captured ČSOB notifications and parsed transactions remain in the phone app's private on-device storage, with Android backups disabled. A compact current-month summary containing only the spent amount and budget is synchronized to the paired Wear OS app using Google's encrypted Wear OS Data Layer; the transfer may route through Google Cloud when Bluetooth is unavailable. The project contains no custom backend or analytics.

Android notification access is a powerful permission. Expense Widget discards events from other apps before extracting or storing their notification contents. Captured ČSOB notification records currently have no automatic retention limit or deletion UI.

Development

Prerequisites

  • Node.js and npm
  • Android Studio with the Android SDK
  • An Android emulator or physical device

Install dependencies and create a development build:

npm install
npm run android

Build the Wear OS APK after generating the Android project:

npm run android:wear

This project contains a native Android module, so it cannot run in Expo Go. To exercise automatic tracking, enable notification access in the app and use a device with ČSOB SmartBanking installed.

Run the checks:

npm test
npm run lint

Tech stack

  • Expo 57, React Native, React, and TypeScript
  • Kotlin native module with NotificationListenerService
  • SQLite, Android RemoteViews widgets, and a native Wear OS Tile
  • Vitest and JUnit

Limitations

  • Android only
  • ČSOB SmartBanking for Slovakia only
  • Positive EUR card transactions only
  • Dependent on the bank's current Slovak notification format

About

An Android expense tracker that turns ČSOB payment notifications into automatic spending insights, monthly budgets, and home screen widgets.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages