Coder Social home page Coder Social logo

lyskouski / app-finance Goto Github PK

View Code? Open in Web Editor NEW
34.0 1.0 6.0 1.06 GB

Fingrom -- open-source platform-agnostic financial accounting application

Home Page: https://tercad.com/app/finance/index.html

License: Other

Kotlin 0.01% Swift 0.21% Objective-C 0.01% Dart 95.58% CMake 1.43% C++ 1.84% C 0.11% HTML 0.10% Shell 0.15% Gherkin 0.46% Ruby 0.10%
accounting finance-management flutter-app open-source finance-app finance-application finance-tracker budget-app budget-tracker

app-finance's Introduction

[ English | Deutsch | 简体中文 ]

Fingrom Logo Financial Accounting Application

License: CC BY-NC-ND 4.0 Check Status Build Status

Unit Tests Coverage Widget Tests Coverage End-To-End Coverage

Fingrom -- open-source cross-platform financial accounting application without Ads and limitations. The goal of the solution is to create a financial accounting application that is intuitive, efficient, and inclusive. That empowers users to effortlessly manage their finances while ensuring that no one is left behind.

Watch the video

Type Alpha Version Pre-Release Release
Apple iOS (Apple Store) fingrom_iOS.ipa TestFlight: Fingrom iOS Apple Store
Apple macOS (Apple Store) fingrom_macOS.zip Not available for testing macOS Apple Store
Android Android (Google Play) fingrom_Android.aab Google Play Google Play
Android Android (Galaxy Store) fingrom_Android.aab Galaxy Store Fingrom
Android Android (Huawei Gallery) fingrom_Android.aab App Gallery App Gallery
Linux Linux (Snap Store) fingrom_LinuxSnap.snap Fingrom Snapcraft: Fingrom
Linux Linux (Flathub) fingrom_LinuxFlatpak.flatpak Not available Flathub: Fingrom
Linux Linux (AppImage) fingrom_Linux.AppImage Pling Store App Image Hub
Windows Windows (Partner Center) fingrom_Windows.zip App Center: Fingrom Microsoft Store
Web Browsers Web fingrom_Web.tar.gz GitHub Pages: Fingrom terCAD: Fingrom

Functionality

  • Accounting (Account Type, Currency/Cryptocurrency)
    • Simple grouping via / (in name) for the main page
    • Transactions log
    • Freeze amount by Update date (to import previous history)
  • Budget Categories
    • Simple grouping via / (in name) for the main page
    • With limits restate:
      • Renewed at the beginning of each month
      • Configurable limits per month
      • Relatives (0.0 ... 1.0) to Income
    • Or, without limitations by showing a spent amount
  • Bills, Transfers, Incomes (Invoices)
  • Goals Definition
  • Exchange rates, Default Currency for Summary
  • Metrics:
    • Budget:
      • Forecast (with Monte Carlo simulation)
      • Budget limit and expenses per month
    • Account:
      • Candlestick (OHLC) Chart
      • Income Health Radar
      • Currency Distribution
    • Bills:
      • YTD Expenses
      • Bar Race for Categories
    • Goals Gauge Chart
    • Currency Historical Chart
  • [demo] Synchronization between devices (P2P)
  • Recovery via WebDav or a direct File
  • Import from CSV, QIF, OFX files for Bills and Invoices
  • Data encryption
  • Localization
  • User Experience
    • Configurable Main Page (multiple configurations per width x height set)
    • Responsive & Adaptive Design
      • Adaptive navigation panel (top, bottom, right) and tabs (top, left)
    • Theme Mode (dark, light, system) with Palette definition (system, custom, personal -- colors selector)
    • Preserve last choice for Account, Budget, and Currency
    • Auto-scroll to the focused element on Form
    • Expand / Collapse sections on Main Page
    • Swipe for a quick access to Edit and Delete actions
    • Zoom in/out (from 60% up to 200%) via "Settings"
    • Shortcuts
Description Shortcut
Open / Close the Navigation Drawer Shift + Enter
Navigate Up up
Navigate Down down
Open Selected Enter
Zoom In Ctrl + +
Zoom In (with mouse) Ctrl + scroll down
Zoom Out Ctrl + -
Zoom Out (with mouse) Ctrl + scroll up
Reset Zoom Ctrl + 0
Add new Transaction Ctrl + N
Return Back Ctrl + Backspace

Support (Sponsorship)

As an open-source project, subscribing will not unlock any additional features in the app. However, it would serve as an investment in the continuous evolution and improvement of the application. So, if you'd like to contribute financially towards the efforts, please consider these options:

Or, treat me to ☕.

Contributions

Any made contribution is greatly appreciated (also, by mentioning in Contributors section, Release notes, and in the app About - Contributors as a gratitude), check Contribution Section for more details.

However, if it's been chosen a contribution (not just typo corrections) to this repo, you agree that you're giving me a non-exclusive license to use that content, as I (and my possible team) deem appropriate. You probably guessed that already, but I just wanted to be extra clear on that.

License & Copyright

The content herein are all © 2023 terCAD Team (Viachaslau Lyskouski).

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported License:

  • Attribution: provide a link to the license, and indicate if changes were made
  • NonCommercial: cannot be used as a part of a commercial solution
  • NoDerivatives: any modification (remix, transform, or build upon the material) cannot be distributed by your own. Push it back to the main repository (https://github.com/lyskouski/app-finance) to unblock the distribution for made changes.

app-finance's People

Contributors

lyskouski avatar muhammadyusuf-kurbonov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

app-finance's Issues

[CR] Finished Goals

Mark the Goal as completed (button appears when amount is reached), by completion proposed to fill the bill if needed.

[CI] [REF-46] Crash on switching tabs

Issue with FocusController.dispose() in build-method on switching tabs (used to restore focus after an action)

The following assertion was thrown while notifying listeners for AnimationController:
'package:flutter/src/widgets/scroll_notification.dart': Failed assertion: line 201 pos 15:
'overscroll.isFinite': is not true.
Another exception was thrown: 'package:flutter/src/widgets/scroll_notification.dart': Failed assertion: line 201 pos 15: 'overscroll.isFinite': is not true.
Another exception was thrown: Rect argument contained a NaN value.
Another exception was thrown: Offset argument contained a NaN value.
[ERROR:flutter/flow/layers/transform_layer.cc(24)] TransformLayer is constructed with an invalid matrix.

TBD:

  • Enabling first focus after switching to the tab with Focus Controller
  • Resolve focus for popup selector after a text input field

[NF] Budget Tab

Actions

  • Add / Deactivate / Activate / Update

Fields:

  • Color
  • Title
  • Limit per Month

[BP] Configure Build Process

Generate artifacts for Macos, Linux, Windows.
Publish Web version to github-pages.
--Publish Android apk to Google Market.-- [cannot be done right now]
--Publish to Apple Store-- [detouched]

[CR] Improve Main Page

Show last 5 items per category with buttons to Add and View more.
On detailed pages implement "infinite pagination" to view all items by scrolling down.

[NF] Billing Flow

Affect Account and Budget by adding/updating/deleting Bill

Affect Goal by Income

View / Update / Delete Bill and patch of Account, Budget, Goal, based on that.

Update Totals based on changes

[NF] About Page

Show version

Latest changes

Links to repository, discussions, plans

Privacy Policy

Terms of Use

[BF] [REF-31] Android - new Account

Android compilation is failing due to firebase_analytics.

Properties are cleaned up and cannot be proceeded for Initial Steps, while original form is working as expected.

[NF] Intro Page

When it's a first time for the user:

Step 1: Set Default Currency
Step 2: Add Account
Step 3: Add Budget Category

Then it'll be opened Main Page

Overview of existing apps

Post here all apps that are used for the same purposes with short overview of market braking feature.

[NF] Bill Tab

Fields

  • Account (preselect last choice or the first item in a list)
  • Category (taken from Budgets)
  • Date (predefine current date)
  • Comment
  • Amount
  • Currency (is taken from Budget or Account by default)

[NF] Currency Tab

Show active currencies (Add, Edit, Delete), update values from external resources

[BF] [REF-19] Error after adding Goal

Error after adding new Goal

The following assertion was thrown during a scheduler callback:
Controller's length property (2) does not match the number of tabs (3) present in TabBar's tabs
property.

When the exception was thrown, this was the stack:
#0      _TabBarState._debugScheduleCheckHasValidTabsCount.<anonymous closure>.<anonymous closure> (package:flutter/src/material/tabs.dart:1369:11)
#1      _TabBarState._debugScheduleCheckHasValidTabsCount.<anonymous closure> (package:flutter/src/material/tabs.dart:1375:8)
#2      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15)
#3      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1223:9)
#4      SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1072:5)
#5      _invoke (dart:ui/hooks.dart:142:13)
#6      PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)
#7      _drawFrame (dart:ui/hooks.dart:112:31)

[NF] Account Tab

Actions:

  • Add / Delete / Update

NOTE: Rearrangement is based on the last usage (on top - recently used for the bill).

Fields:

  • Title
  • Details
  • Color
  • Icon
  • Type (Account Template)
  • Currency
  • Valid Till (shown for Cards)
  • Balance Date Update(current date by default)
    • show notification that Outcomes and Incomes before that date won't affect the balance
  • Actual Balance

Account Templates:

  • Bank Account
  • Cash
  • Debit Card
  • Credit Card
  • Deposit
  • Credit

[NF] Invoice Item

Invoice Item to track scheduled transfers/income/bills, and show them properly on detalization page

[NF] Account Templates

Account Templates (hide/show elements on form):

  • Bank Account
  • Cash
  • Debit Card
  • Credit Card
  • Deposit
  • Credit

Rules:

  • Debit Cards, Accounts, Cash: cannot spend more that exist
  • [SKIP] Credit Cards, Credit: additional deductions based on set percentages
  • Deposit: percentages, end of deposit; excluded for the Bill

[NF] Import Data

Support the import of .csv files with "previous" history of bills.

[NF] Goal Widget

Actions

  • Add / Update / Delete[Cancel] Goal

Calculation: changed each time new income is happened - diff between income and outcome, and updated by delta.

[RF] Single storage

Move all mocks through the components and widgets to a single storage on main item.

[BF] Deactivated widget error

From Main page directly to Account or Budget item leads to an error. If path is Main -> Account List -> Account Item, the error won't be shown.

Image

[NF] Store Preferences

Use shared_preferences to preserve some preferences as last Budget Category, last Account taken, Currency used, etc.

[RF] Improve Storage usage

getStorage(name) returns instance with getter and setter, last one will update store by chains back.

Use ChangeNotifier / ChangeNotifierProvider

[NF] Accessibility Support

Add basic accessibility support by changing Widget templates.

WCAG 2.1 Accessibility Standards

  • Level A, AA, AAA
  • Principles
    • Perceivable
    • Operable
    • Understandable
    • Robust

Visual disability: audial aids
Hearing disability: visual aids
Physical disability: little movements
Motor impairment: no fine movement
Cognitive impairment: additional aids (read aloud, etc.)

WAI-ARIA

Section 508 US

NOTES:

Checklist: https://accessibility.voxmedia.com/

Semantics widget to improve the accessibility of your UI elements.

Semantics(
  label: 'Submit Button',
  child: ElevatedButton(
    onPressed: () {
      // Handle button press
    },
    child: Text('Submit'),
  ),
)

P.S. IAAP (International Association of Accessibility Professionals) Certification: CPACC, WAS, CPWA

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.