gaynetdinov / ex_money

An [abandoned] self-hosted personal finance app
ISC License
167 stars 12 forks source link
elixir personal-finances phoenix saltedge self-hosted spectre

ExMoney Build Status

ExMoney is a [work-in-progress] self-hosted web application which helps you to track your personal finances.
It's built around Spectre API so ExMoney can export bank transactions for you. The list of available banks you can find here.

The main idea behind ExMoney is to have free, open source application which can help to track personal finances at(almost) no cost.
ExMoney is written in Elixir using Phoenix framework, the app on production consumes very little of RAM and it should work just fine on Heroku free plan.

Saltedge

Spectre API is a Financial Data Aggregation Platform.
It allows to export bank transactions automatically which allows ExMoney to solve the main flaw of most personal finance apps — need to enter every single transaction.

Spectre API provides 'Test' mode using which it's possible to have connections with up to 10 providers(banks) for free.

Mobile version

ExMoney has a mobile version for an iPhone. The mobile version is built using Framework7.
ExMoney is supposed to run as Standalone web app(i.e. Add to Home Screen in Safari).

Currently mobile version looks like this

Dashboard

More screenshots

Desktop version

ExMoney has a desktop version which is not ready yet, however it provides some Settings to manage providers(banks), accounts, categories, etc.
The desktop version is built using Bootstrap and utilizes default Dashboard template.

Niceties

Rules

Currently ExMoney has two types of Rules which can be applied for every incoming transaction from Spectre API:

Automatic sync

If a bank does not require one-time-password/captcha/etc to log in, ExMoney will run a periodic job to export transactions for you. ExMoney will run a job to export transactions from a bank every hour.
Also ExMoney disables this task during the nights to not violate Heroku's free plan limitations.

Interactive providers

ExMoney allows to manually export transactions from banks which require one-time-password as well. For now only otp is supported.

How to use

Before using ExMoney, please make sure that Saltedge supports your bank here.

Please check the wiki page which describes how to use ExMoney.

Current state

Currently ExMoney is a work-in-progress/prototype/'works on my machine' stage.

FAQ

Why another personal finance app?

I've written a blog post about ExMoney http://blog.damirca.one/ex-money.

Why only iOS?

I don't have an Android device to test ExMoney on Android. Feel free to add necessary Framework7 styles and test ExMoney on Android.

Why Desktop version does not use React/ES7/Clojurescript/Elm/etc?

I'm a backend developer, I don't know frontend part, I don't know how to js/html/css, so I took the most easiest approach to build a frontend.

Contributing

Contributions welcome! Please feel free to create pull-requests and issues.

License

This software is licensed under the ISC license.