Git Product home page Git Product logo

finance's Introduction

finance

Tests

A self hosted app to help you get a better understanding of your finances.

Installing/Setting up

At the moment, this project is configured to be used from docker containers. You may use non-docker versions of the software, but at the moment that's undocumented.

Features

  • Group transaction by a set of conditions.
  • Send alerts to Discord, Slack, Webhooks, email, Nexmo, and In-site notifications!
  • Sync older transactions
  • Graph your groups and compare numbers vs a previous time period (a trend)
  • Add together all your transactions in a time period (a metric)
  • Can automatically sync your transactions

Configuration

First and foremost you must have a Plaid account. Once you have your account you'll need to copy your development tokens.

You'll then need to go to your .env file in the root of this project (or copy the .env.example file if the.env file doesn't exist) and add the following values.

PLAID_ENV=development
PLAID_PUBLIC_KEY=
PLAID_SECRET=
PLAID_CLIENT_ID=

And then fill in your plaid values.

Requirements

  • MySql
  • PHP >7.4
  • Redis (for queues and caching)

Using Docker "Quick Setup"

docker-compose up --build -d

Which will build the containers, and start them daemonized (in the background)

(If your nginx container won't start, be sure you don't have any other programs using port 80)

  • Install the composer dependencies docker exec -it finance-php composer install
  • Install the npm/yarn dependencies docker exec -it finance-node npm install or yarn (Yes you need this on your host computer for now.)
  • Build the assets docker exec -it finance-node npm run production
  • Start the job queue worker docker exec -it finance-php php artisan queue:work
  • Navigate to 127.0.0.1 (or localhost, or whatever IP you're using to host this app) and register an account. Then navigate to your settings page and link your bank account
  • Click the "refresh" icon next to your bank name. (Give it a few seconds to process, and click the button again.) You should then see your accounts populate under the bank name.
  • Click "Historical Sync" select your accounts, select your date, then sync. The time it can take to pull these transactions will vary widely based on the number of transactions, and date you choose. For a date range spanning several years it can take up to 30 minutes to sync everything. You can watch the terminal where you have the queue worker running to know when the last job processes.

Cron Jobs

If you can configure the Laravel task scheduler php artisan schedule:run then commands will be ran when they're suppose to.

* * * * * "docker exec -it finance_php_1 php artisan queue:work"

Or you can configure a manual cron job to run those commands.

Screenshots

Transactions
Accounts
Alerts
Grouping transactions
Metrics

finance's People

Contributors

dependabot[bot] avatar

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.