Skip to content

Simple Cash Flow based accounting system. Suitable for individuals, or small business owners who want to understand the flow of money without the complexity of a full accounting system.

License

Notifications You must be signed in to change notification settings

KeidsID/fl_basic_accounting

Repository files navigation

fl_basic_accounting

dart-badge flutter-badge

This application aims to assist users in recording and monitoring financial conditions through a simple Cash Flow based accounting system. Suitable for individuals, or small business owners who want to understand the flow of money without the complexity of a full accounting system.

⚠️ In early development stage.
Features subject to change as needed.

🎯 Main Objective

  • Record financial transactions efficiently.
  • Generate daily, monthly, or annual financial reports automatically:
    • Cash Flow Statement
    • Profit and Loss Statement
    • Balance Sheet

🧱 Key Features

  • ✍️ Transaction Recording
    Record income and expenses. In order to be formed into financial reports, each record will have categories such as assets, liabilities, etc.

  • 📊 Automated Reports
    The application can display financial reports based on data from previous transaction records.

  • 🗂️ Project Based
    Want to create another financial reports for business or other purposes? Simply create a new project and the data will be separate from other projects.

💡 Development Plan

  • Project Creation.

  • Recording transactions on the project.

  • Generation of financial reports from project transactions.

  • Import/Export data with the help of spreadsheet files.

  • If possible, integrate users' Google Drive (Spreadsheet) to share data across devices, so developers don't have to pay database fees 🤣.

💻 Developer Section

Requirements

  • Install Flutter SDK with the same version as defined on pubspec.yaml or .fvmrc file.

    You may use fvm (Flutter Version Manager) for easy installation.

    fvm use prod

Dependencies

Main packages that are used as foundation for this project.

Most of them need to generate its utilities with build_runner.

Setup

  1. Install dependencies.

    flutter pub get
  2. Intialize git hooks to validate commit messages.

    dart run husky install
  3. Build project environment.

    dart run build_runner build -d # generate code utils
  4. Now you're good to go!

    # Check connected devices
    flutter devices
    
    # Check available emulators
    flutter emulators
    
    # Run app
    flutter run -d <device-id>

Package Import Alias

This project modified its name in pubspec.yaml to app, so default package import won't work.

// Do
import "package:app/main.dart";

// Instead of
import "package:fl_basic_accounting/main.dart";

Project Structures

This project will follow the clean-architecture.

└── lib/
    ├── domain/ (repos/services abstraction, and data entities)
    ├── infrastructures/ (repos/services implementation, "data" layer stored here too)
    ├── use_cases/ (app logic)
    ├── interfaces/ (app UI/UX, also known as "presentation" layer)
    └── **/libs/ (Shared constants, utilities, etc. May defined on others sub folders)

Git Conventions

We use conventional-commits to handle Git commit messages, and Github PR titles.

Issue Title

<type>(<scopes(optional)>): <content>

Examples:

  • feat: add foo service
  • bug: unresponsive bar page

Commit Message / PR Title

<type>(<scopes(optional)>): <content> #<issue-number>

Examples:

  • feat: add foo abstraction #89
  • fix: fix invalid behavior of bar method #82

Since release-please-action will need PR hash ref on commit msg, we won't recommend to do rebase merge on main branch.

Branch Name

<type>-<content>-#<issue-number>

Examples:

  • chore-update-docs-#26
  • fix-unresponsive-foo-page-#75

About

Simple Cash Flow based accounting system. Suitable for individuals, or small business owners who want to understand the flow of money without the complexity of a full accounting system.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •