Fund Tracker

一款用于预算和跟踪交易的 Flutter 应用程序。

我创建这个是因为找不到任何允许自定义或四周周期的应用程序。

它允许使用 Firebase 进行身份验证,并使用 Firestore 作为云数据库,同时使用设备的本地数据库作为备份。

功能包括

  • 统计
  • 自定义周期
  • 周期性交易
  • 自定义类别
  • 筛选器

等等...

运行方法

要构建此应用程序并将其运行在您的设备或模拟器上,您需要

  • Flutter
  • Android SDK
  • 如果您想运行 iOS,则需要 XCode

请遵循此处的说明进行设置:https://flutterdart.cn/docs/get-started/install

演示

第一个屏幕是登录页面。

login_empty
点击“注册”来创建一个用户。

register

或者,您也可以使用现有凭据登录。

login

主页是交易列表。

home_empty

让我们添加一笔交易。我从 Play Store 购买了一个应用程序,花费了 1.99 美元。

add_tx_gpstore

我还可以从预设类别中选择。让我们选择“游戏与应用”。

add_tx_gpstore_category

我还想添加一笔收入。我以 5000 美元的价格卖掉了我的汽车。我选择了“交通”作为类别。

home_sold_car

假设我想为我卖掉的东西创建一个自定义类别。
让我们打开菜单并转到“类别”。
此页面显示所有类别的列表。
您可以通过选择/取消选择各个类别来决定是否在交易页面上显示这些类别,并更改其在下拉列表中显示的顺序。

menu_open_from_home

categories_default

但我们在这里是创建一个新类别,所以点击浮动的 + 按钮。
在类别创建/编辑页面,您可以指定名称、图标(来自 MaterialIcons)和颜色。

add_category_sold_name

icon_selection

colour_selection

add_category_sold_finished

点击“添加”,它就会出现在列表的底部!

categories_sold_added

如果您愿意,可以点击每个类别进行编辑。
现在,让我们回到汽车交易并更改类别。
在类别下拉列表中,您可以看到“已售物品”现在可用。
选择类别,保存,交易就已更新。

car_tx_sold_category

home_tx_sold_category

我刚刚又从 Play Store 购买了一个应用程序,并希望添加一笔交易。
当我开始输入时,过去以相同名称开头的交易就会被建议。
选择建议。名称和类别会自动为您更改。输入其余详细信息并保存。

add_tx_gpstore2_suggestions

add_tx_gpstore2_details

现在您有了一些交易,让我们来看看我们的统计数据。
您可以向左滑动或点击“统计”。

statistics--1-

有三个主要视图

  • 总计
  • 周期
  • 自定义

“总计”选项卡显示您第一次交易以来的统计数据。
“周期”选项卡显示周期性统计数据,您可以从下拉列表中选择。
“自定义”选项卡显示可在“偏好设置”中设置的交易范围内的统计数据,或者您可以使用日期选择器选择要显示统计数据的开始日期。(待办:允许选择结束日期)

统计页面目前包含以下信息

  • 余额
  • 当前周期剩余天数/每日剩余余额
  • 实际收入/支出
  • 按类别支出(待办:考虑收入?偏好设置)
  • 主要支出

statistics

stats_categories

stats_top_expenses

交易可以从主页(交易或统计)进行筛选。此筛选器是共享的,并影响统计数据。
您可以按收入/支出或按类别进行筛选。

filters

交易列表顶部还有一个搜索功能。

另一个有用的功能是自定义周期。默认情况下,周期按月设置。
在“周期”菜单中,让我们添加一个自定义周期。
我想要一个从这个星期五开始的四周自定义周期。
不用担心过去的交易,这会正确地从任何设定的开始日期设置过去的周期。
让我们也将其设置为默认(活动)周期。

periods_empty

add_period_4_weeks

我还添加了一个两周周期,以显示活动周期以蓝色突出显示。

periods_active_4_weeks

回到主页和交易列表,我们可以看到交易被分成不同的周期。
前两次交易是在 6 月 11 日添加的(在当前周期开始之前),最后一次交易是在 12 日添加的。

home_custom_period

统计页面 > 周期选项卡也显示更新的周期以及任何其他有交易的周期。

statistics_custom_period

另一个必不可少的功能是“周期性交易”。
我们可以从菜单 > “周期性交易”中添加。

recurring_transactions_empty

假设我想在接下来的 5 天里每天给我弟弟 5 美元。
我可以设置下一个日期(或开始日期)、交易详情、频率,如果适用,还可以使用 *任一* 次数或结束日期来设置结束条件。

add_recurring_transactions_allowance

recurring_transactions_allowance

现在周期性交易已添加,让我们转到主页。
由于我们将下一个日期设置为今天,因此该交易已添加。
(注意:零花钱交易显示在 Google Play 应用购买之前,因为周期性交易以 00:00 的时间添加)

home_recurring_transaction

菜单中的最后一项是“偏好设置”。
您目前可以在偏好设置中更改以下项目

  • 统计中“自定义”选项卡的自定义范围
  • 打开统计时的默认选项卡
  • 重置偏好设置

preferences

GitHub

https://github.com/ys27/FundTracker