Flutter Track Of Transactions

Flutter Track Of Transactions

Fund Tracker

A flutter application for budgets and keeping track of transactions.

I built this because I couldn’t find any application that allowed a custom or a 4-week period.

Allows authentication with Firebase and uses Firestore as a cloud database on top of using the devices’ local database as backup.

Features include:

  • statistics
  • custom periods
  • recurring transactions
  • custom categories
  • filters

and more…

To run

To build this application and run it on your device or an emulator, you need:

  • Flutter
  • Android SDK
  • XCode if you wish to run iOS

Follow the instructions here to set up: https://flutter.dev/docs/get-started/install.

Demo

The first screen is the login page.

Empty Login

Click on Register to create a user.

Register

Alternatively, you can log in with your existing credentials.

Login

The home page is a list of transactions.

Empty Home

Let’s add a transaction. I bought an app from the Play Store for $1.99.

Adding Google Play Store Purchase

I can also choose from a preset of categories. Let’s choose Games & Apps.

Adding Google Play Store Purchase Category

I also want to add an income. I sold my car for $5000. I chose Transportation as the category.

Added Sold Car

Say I wish to create a custom category for things I’ve sold.
Let’s open the menu and go to Categories.
This page displays a list of all the categories.
You can choose to show these in the transactions page by selecting/unselecting individual categories and change the order it is displayed in the dropdown.

Menu From Home Default Categories

But we are here to create a new category, so click on the floating + button.
In the category creation/edit page, you can specify the name, the icon (from MaterialIcons), and the colour.

Adding Category Name Adding Category Icon
Adding Category Colour Adding Category Filled

Click Add and at the bottom of the list, voila!

Added Category

You can click on each category to edit them, if you wish.
For now, let’s go back to the car transaction and change the category.
In the category dropdown, you can see that Items Sold is now available to use.
Select the category, save, and the transaction is now updated.

New Category In Dropdown Updated Transaction New Category

I just bought another app from the Play Store and wish to add a transaction.
As soon as I start typing, transactions from the past that starts with the same name are suggested.
Choose the suggestion. The name and the category are changed for you. Enter the rest of the details and save.

Show Suggestions Add Suggestion Details

Now that you have a few transactions, let’s check out our statistics.
You can swipe to the left or click on Statistics.

Statistics

There are three main views:

  • All-Time
  • Period
  • Custom

The All-Time tab shows you stats from your first-ever transaction.
The Period tab shows you periodic stats, which you can select from the dropdown.
The Custom tab shows you stats from the range of transactions that can be set in Preferences, or you can use the date selector to select the start date in which to show the stats from. (TODO: Allow end date selection)

The statistics page currently has the following information:

  • Balance
  • Remaining days in current period / Remaining balance per day
  • Actual Income / Expenses
  • Expenditure per category (TODO: Consider income? preferences)
  • Top Expenses
Statistics Statistics Categories

Statistics Top Expenses

The transactions can be filtered from the home page (Transactions or Statistics). This filter is shared and affects the statistics.
You can filter by income/expenses or by categories.

Filters

There is also a search function at the top of the transactions list.

Another useful feature is custom periods. By default, periods are set by month.
In the Periods menu, let’s add a custom period.
I want a 4 week custom period that starts this Friday.
Don’t worry about past transactions, this will set the past periods properly from any set start date.
Let’s also set this as the default (active) period.

Empty Periods Add 4 Weeks Period

I’ve also added a 2 week period to show that the active period is highlighted in blue.

Periods With 4 Weeks Active

Back to the home page and the transactions list, and we can see that the transactions are split in different periods.
The first two transactions were added on June 11 (before the current period started), and the last one was added on the 12th.

Custom Period in Home

The statistics page > Period tab also shows the updated period and any other periods that have transactions.

Custom Period in Stats

Another feature that is essential are Recurring Transactions.
We can add this from the menu > Recurring Transactions.

Empty Recurring Transactions

Let’s say I want to give my little brother $5 for the next 5 days.
I can set the next date (or the start date), transaction details, the frequency, and if applicable, the end condition using either the number of times I would like, or the end date.

Add Recurring Transaction Added Recurring Transaction

Now that the recurring transaction is added, let’s go to the home page.
Since we set the next date for today, the transaction is already added.
(Note: the allowance transaction shows up before the google play app purchase because recurring transactions are added with the time set as 00:00)

Recurring Transaction Added

The last item in the menu are the Preferences.
You can currently change these items in Preferences:

  • Custom Range for the Custom tab in Statistics
  • Default tab in Statistics when opened
  • Reset Preferences

Preferences

Source Code

Please Visit Flutter Track Of Transactions Source Code at GitHub