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.
Click on Register
to create a user.
Alternatively, you can log in with your existing credentials.
The home page is a list of transactions.
Let's add a transaction. I bought an app from the Play Store for $1.99.
I can also choose from a preset of categories. Let's choose Games & Apps
.
I also want to add an income. I sold my car for $5000. I chose Transportation
as the category.
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.
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.
Click Add
and at the bottom of the list, voila!
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.
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.
Now that you have a few transactions, let's check out our statistics.
You can swipe to the left or click on 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
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.
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.
I've also added a 2 week period to show that the active period is highlighted in blue.
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.
The statistics page > Period tab also shows the updated period and any other periods that have transactions.
Another feature that is essential are Recurring Transactions
.
We can add this from the menu > 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.
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)
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