GithubHelp home page GithubHelp logo

seanzor / caspion Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brafdlog/caspion

0.0 0.0 0.0 14.73 MB

Automated budget tracking from Israeli financial institutions

Home Page: https://brafdlog.github.io/caspion/

License: MIT License

JavaScript 16.24% HTML 0.39% Vue 38.50% TypeScript 43.65% Dockerfile 0.50% Shell 0.27% CSS 0.47%

caspion's Introduction

Caspion - Automated expense tracking from Israeli banks and credit cards

Build/Release Language grade: JavaScript Discord Shield

Many people track their expenses with spreadsheets or with budgeting apps (like YNAB).

The most annoying part of this process is transferring the data from the banks or credit cards to the budgeting tool you use. It usually requires you to go to the website of each one of your banks and credit cards, and manually copy the data to your budgeting tool.

This project aims to automate this process by fetching the data automatically from your Israeli financial institutions and sending it to the budgeting tool of your choice.

In addition, it can automatically set an expense category for transactions according to predefined patterns.

Internally it uses the Israeli bank scrapers npm package.

If you want to ask questions, suggest features or report issues, join our discord channel.

Features

  • One click to fetch transactions from multiple Israeli banks and credit cards
  • Exporting transactions to Google Sheets, YNAB, Excel (CSV) or JSON file
  • A basic UI for configuration
  • A configuration for automatically classifying transactions to categories according to predefined patterns

Running the app

Download the latest version from Releases page, or build it from source, with the instructions below.

Initial setup

The first time you run the app, you will need to set up the accounts you want to fetch data from (importers).

Now you can set up the exporters - where the data will be sent to. The CSV exporter is enabled by default. If you want to export to YNAB, see instructions at the end of the README.

Report a problem

We are still in beta, and you may find errors. Please use the REPORT A PROBLEM button in the app to report to us.

Use this button to find the logs folder as well.

Running in a development environment

Prerequisites

  • NodeJS.

  • node-gyp. In Windows you have a checkbox in the NodeJS installer to install also the node-gyp.
    This module is for packages that compile native code in their installation, in our case it is required for electron and keytar. (Note that if you install visual studio, you need to add the workload of desktop development with C++) image

  • Yarn.

Linux Prerequisites

Currently, this project depends on libsecret, so you may need to install it before running yarn.

Depending on your distribution, you will need to run the following command:

  • Debian/Ubuntu: sudo apt-get install libsecret-1-dev
  • Red Hat-based: sudo yum install libsecret-devel
  • Arch Linux: sudo pacman -S libsecret

Start from Source

  • Run yarn to install the dependencies
  • Run yarn serve to start the app
  • Set up additional exporters (Optional)
    • If you want to set up YNAB, see instructions below
  • Run by clicking on the Run button in the app
  • Configure automatic category classification (Optional)
    • Open categoryCalculationScript.js. This file contains the patterns for classifying transactions to categories automatically.
    • Edit this file to add any mapping from function description to category that fits your needs.
    • If using YNAB, the categories you return must match category names in YNAB

Building for production

  • Run yarn build

YNAB integration setup (optional)

YNAB is a budgeting software. If you want to manage your budget there and have your expenses updated automatically to YNAB follow these steps:

  • Create an account in YNAB
  • Create in YNAB unlinked accounts for each financial account you want to track (bank accounts and credit cards)
  • Get the YNAB access token
    • In YNAB go to Account settings -> Developer settings
    • Click on New Token and generate
    • On the top of the screen you will see the full token (the token with XXXX in it is not the full one).
    • Save this token in the YNAB settings in the app.
  • Set your YNAB budget id
    • Find your YNAB budget id by going into your budget and taking it from the url: https://app.youneedabudget.com/XXXXXX-XXXXXX-XXXXXX-XXXXX/budget
    • Set this budget id in the YNAB settings and save.
  • Fill the table containing account number to ynab account id mapping
    • For each account you want to track add another row to the table
    • To get the ynab account id of the account navigate to that account in ynab and get the account id from the url: https://app.youneedabudget.com/akfkmksdcscd/accounts/XXXXXXXX-XXXX-XXXX-XXXX-XXXX
    • The account number could be the credit card number, or the bank account number. To be sure, you can run the app so it exports transactions to a CSV and get the account number from there.
  • Click on Save to save the configuration

CSV (Excel) Note

In some cases you may get gibberish when you open the CSV file in Excel. In this case, please follow the next steps:

  1. Open a new Excel document.
  2. Go to Data -> Import From CSV/Text.
  3. Select your CSV file.
  4. For the "Encoding"/"File Origin", select Unicode UTF-8 (65001).

Release

The Release workflow, configured in .github/workflows/release.yml, will draft a new release or update the artifacts on an existing draft, according to the following conditions:

  1. A change pushed to the master branch.
  2. The version from the package.json, with the prefix v, is not a published release.
  3. Upload the artifacts to the v${package_version} Github Release.

It means that after you published a new release, from the Github interface, you need to upgrade the version in the package.json file, to get a new draft.

Disclaimer

Providing your financial account credentials to software is not risk free. We will do our best to protect your credentials, but we take no responsibility for any possible damages. If you want to use this we suggest you ask your financial institution for credentials for a user that has only read access to the relevant account and use those credentials to reduce the potential risk.

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.