A personal finance web application written in Go and React/Bootstrap
Go to file
Aaron Lindsay 7f20ca5256 README: Add screenshots 2017-07-07 06:32:01 -04:00
docs Add markdown documentation 2017-07-07 06:18:05 -04:00
js ReportReducer: Fix bug creating list 2017-06-23 06:10:35 -04:00
reports s/r/t/ in example report lua code 2017-06-23 06:01:54 -04:00
screenshots README: Add screenshots 2017-07-07 06:32:01 -04:00
scripts scripts/gen_security_list.py: Support python 2 2017-06-16 06:24:14 -04:00
static Report formatting fixes 2017-06-19 20:24:56 -04:00
.gitignore .gitignore: Add static/codemirror 2017-06-22 06:05:13 -04:00
Makefile Basic Report UI complete! 2017-06-17 10:28:50 -04:00
README.md README: Add screenshots 2017-07-07 06:32:01 -04:00
accounts.go Add direct OFX imports 2017-06-04 20:30:29 -04:00
accounts_lua.go Add markdown documentation 2017-07-07 06:18:05 -04:00
balance_lua.go reports: Allow drilling down 2017-02-17 10:01:31 -05:00
date_lua.go reports: Allow drilling down 2017-02-17 10:01:31 -05:00
db.go Add lots of backend and back-frontend report infrastructure 2017-06-16 20:55:22 -04:00
errors.go Fix Gnucash security imports 2017-02-19 07:50:36 -05:00
gnucash.go gnucash: Support directly importing gzipped files 2017-06-19 21:08:49 -04:00
imports.go imports: Don't re-import the same transaction from the same place 2017-06-10 15:22:13 -04:00
main.go reports: Add basic lua infrastructure 2017-01-23 20:40:39 -05:00
ofx.go imports: Don't re-import the same transaction from the same place 2017-06-10 15:22:13 -04:00
package.json Basic Report UI complete! 2017-06-17 10:28:50 -04:00
reports.go Basic Report UI complete! 2017-06-17 10:28:50 -04:00
reports_lua.go Add lots of backend and back-frontend report infrastructure 2017-06-16 20:55:22 -04:00
securities.go Ensure default currency isn't modified to be a non-currency 2017-06-21 21:53:01 -04:00
securities_lua.go Add markdown documentation 2017-07-07 06:18:05 -04:00
sessions.go Make sessions PUT and POST return the resulting Session 2016-10-04 19:55:40 -04:00
transactions.go imports: Don't re-import the same transaction from the same place 2017-06-10 15:22:13 -04:00
users.go Add per-user default currency 2017-06-21 21:27:41 -04:00
util.go backend: Add ability to get Transactions by Account 2015-07-11 08:58:36 -04:00

README.md

MoneyGo

MoneyGo is a personal finance web application written in JavaScript and Golang. It adheres to double-entry accounting principles and allows for importing directly from financial institutions using OFX (via ofxgo).

This project is in active development and is not yet ready to be relied upon as your primary accounting software.

Screenshots

Yearly Expense Report Transaction Register Transaction Editing

Documentation

Documentation in markdown

Installation

First, install npm, python, curl, and go >= 1.7 in your distribution. Here is how in Arch Linux:

$ sudo pacman -S npm curl go python

Install browserify globally using npm:

$ sudo npm install -g browserify

You'll then want to build everything (the Golang and Javascript portions) using something like:

$ export GOPATH=`pwd`
$ go get -v github.com/aclindsa/moneygo
$ go generate -v github.com/aclindsa/moneygo
$ go install -v github.com/aclindsa/moneygo

This may take quite a while the first time you build the project since it is auto-generating a list of currencies and securities by querying multiple websites and services. To avoid this step, you can touch src/github.com/aclindsa/moneygo/cusip_list.csv before executing the go generate ... command above. Note that this will mean that no security templates are available to easily populate securities in your installation. If you would like to later generate these, simply remove the cusip_list.csv file and re-run the go generate ... command.

Running

Assuming you're in the same directory you ran the above installation commands from, running MoneyGo is then as easy as:

$ ./bin/moneygo \
  -port 8080 \
  -base src/github.com/aclindsa/moneygo/

You should then be able to explore MoneyGo by visiting http://localhost:8080 in your browser.

Missing Features

  • Importing investment transactions via OFX
  • Budgets
  • Scheduled transactions
  • Matching duplicate transactions
  • Tracking exchange rates, security prices
  • Import QIF
  • Finishing reports