A personal finance web application written in Go and React/Bootstrap
Go to file
Aaron Lindsay a357d38eee Store currency/security values/prices using big.Rat natively
This adds 'shadow' types used only by the store/db internal package whch
handle converting these types to their DB-equivalent values. This change
should allow reports to be generated significantly faster since it
allows a large portion of the computation to be shifted to the database
engines.
2017-12-12 19:50:38 -05:00
docs Add security prices 2017-07-13 21:32:25 -04:00
internal Store currency/security values/prices using big.Rat natively 2017-12-12 19:50:38 -05:00
js client: Set contentType header 2017-11-13 20:49:26 -05:00
screenshots README: Add screenshots 2017-07-07 06:32:01 -04:00
static Report formatting fixes 2017-06-19 20:24:56 -04:00
.gitignore First pass at reorganizing go code into sub-packages 2017-10-04 19:35:59 -04:00
.travis.yml Store currency/security values/prices using big.Rat natively 2017-12-12 19:50:38 -05:00
Gopkg.lock dep ensure -update 2017-12-09 20:10:17 -05:00
Gopkg.toml Use `dep` and adapt travis to, too 2017-11-18 20:22:12 -05:00
LICENSE Add MIT license 2017-09-25 19:44:25 -04:00
Makefile First pass at reorganizing go code into sub-packages 2017-10-04 19:35:59 -04:00
README.md Add tests for reading config files 2017-12-09 21:19:54 -05:00
example_config.ini Add tests for reading config files 2017-12-09 21:19:54 -05:00
main.go Lay groundwork and move sessions to 'store' 2017-12-07 05:25:35 -05:00
package.json package.json: Update npm packages 2017-09-20 19:58:26 -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 (but please feel free to try it out and offer feedback!).

Features

Screenshots

Yearly Expense Report Transaction Register Transaction Editing

Usage Documentation

Though I believe much of the interface is 'discoverable', I'm working on documentation for those things that may not be so obvious to use: creating custom reports, importing transactions, etc. For the moment, the easiest way to view that documentation is to browse it on github.

Installation

First, install npm, nodejs >= 6.11.3 (may work on older 6.x.x releases, but this is untested), python, curl, and go >= 1.9 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 -d github.com/aclindsa/moneygo
go generate -v github.com/aclindsa/moneygo/internal/handlers
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/internal/handlers/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

MoneyGo requires HTTPS or FCGI (no HTTP). Before starting the server, you will want to edit the example configuration file (src/github.com/aclindsa/moneygo/internal/config/example_config.ini) to point to your own SSL certificate/key OR set 'generate-certs-if-absent = true' in the '[http]' section of the config file.

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

./bin/moneygo -config src/github.com/aclindsa/moneygo/internal/config/example_config.ini

You should then be able to explore MoneyGo by visiting https://localhost:8443 in your browser. Editing the configuration file supplied will allow you to modify several settings including the port used, SSL certificate locations, and whether to serve via FastCGI instead of HTTPS (the default).

Missing Features

  • Importing a few of the more exotic investment transactions via OFX
  • Budgets
  • Scheduled transactions
  • Matching duplicate transactions
  • Tracking exchange rates, security prices
  • Import QIF