Skip to content

A [work-in-progress] self-hosted personal finance app

License

Notifications You must be signed in to change notification settings

panickt/ex_money

 
 

Repository files navigation

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:

  • a rule to reassign category which has been assigned automatically by Spectre API
    In case of automatically assigned category does not make sense it's possible to reassign category based on transaction's description and payee fields.

  • a rule to detect withdraw transaction and to create appropriate 'Income' transaction in a 'Cash' account

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.

About

A [work-in-progress] self-hosted personal finance app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 56.3%
  • CSS 20.8%
  • Elixir 15.7%
  • HTML 7.2%