2017-06-05 20:24:19 -04:00
|
|
|
# MoneyGo
|
2016-02-12 20:36:59 -05:00
|
|
|
|
2017-06-05 21:07:45 -04:00
|
|
|
**MoneyGo** is a personal finance web application written in JavaScript and
|
|
|
|
Golang. It adheres to [double-entry
|
|
|
|
accounting](https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system)
|
|
|
|
principles and allows for importing directly from financial institutions using
|
|
|
|
OFX (via [ofxgo](https://github.com/aclindsa/ofxgo)).
|
|
|
|
|
|
|
|
This project is in active development and is not yet ready to be relied upon as
|
2017-10-01 07:44:20 -04:00
|
|
|
your primary accounting software (but please feel free to try it out and offer
|
|
|
|
feedback!).
|
2017-06-05 21:07:45 -04:00
|
|
|
|
2017-07-14 08:17:49 -04:00
|
|
|
## Features
|
|
|
|
|
|
|
|
* [Import from OFX](./docs/ofx_imports.md) (bank and credit card transactions
|
|
|
|
only so far) and Gnucash
|
|
|
|
* Enter transactions manually using the register, double-entry accounting is
|
|
|
|
enforced
|
|
|
|
* Generate [custom charts in Lua](./docs/lua_reports.md)
|
2017-06-25 06:11:50 -04:00
|
|
|
|
2017-07-14 08:17:49 -04:00
|
|
|
## Screenshots
|
2017-06-25 06:11:50 -04:00
|
|
|
|
|
|
|
![Yearly Expense Report](./screenshots/yearly_expenses.png)
|
|
|
|
![Transaction Register](./screenshots/transaction_register.png)
|
|
|
|
![Transaction Editing](./screenshots/editing_transaction.png)
|
|
|
|
|
2017-07-07 06:40:07 -04:00
|
|
|
## Usage Documentation
|
2017-06-25 06:14:44 -04:00
|
|
|
|
2017-07-07 06:40:07 -04:00
|
|
|
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](./docs/index.md).
|
2017-06-25 06:14:44 -04:00
|
|
|
|
2017-06-05 20:24:19 -04:00
|
|
|
## Installation
|
2016-02-12 20:36:59 -05:00
|
|
|
|
2017-09-27 10:35:09 -04:00
|
|
|
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:
|
2017-06-05 20:24:19 -04:00
|
|
|
|
2017-06-16 20:45:11 -04:00
|
|
|
$ sudo pacman -S npm curl go python
|
2016-02-12 20:36:59 -05:00
|
|
|
|
2016-10-05 14:17:17 -04:00
|
|
|
Install browserify globally using npm:
|
2017-06-05 20:24:19 -04:00
|
|
|
|
2016-10-05 14:17:17 -04:00
|
|
|
$ sudo npm install -g browserify
|
2016-02-12 20:36:59 -05:00
|
|
|
|
2016-10-05 14:17:17 -04:00
|
|
|
You'll then want to build everything (the Golang and Javascript portions) using
|
|
|
|
something like:
|
|
|
|
|
|
|
|
$ export GOPATH=`pwd`
|
2017-10-04 19:35:59 -04:00
|
|
|
$ go get -d github.com/aclindsa/moneygo
|
|
|
|
$ go generate -v github.com/aclindsa/moneygo/internal/handlers
|
2016-10-05 14:17:17 -04:00
|
|
|
$ go generate -v github.com/aclindsa/moneygo
|
|
|
|
$ go install -v github.com/aclindsa/moneygo
|
|
|
|
|
2017-06-05 20:30:26 -04:00
|
|
|
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.
|
|
|
|
|
2017-06-05 20:24:19 -04:00
|
|
|
## Running
|
2016-10-05 14:17:17 -04:00
|
|
|
|
2017-06-05 21:07:45 -04:00
|
|
|
Assuming you're in the same directory you ran the above installation commands
|
2016-10-05 14:17:17 -04:00
|
|
|
from, running MoneyGo is then as easy as:
|
|
|
|
|
2017-10-01 21:15:40 -04:00
|
|
|
$ ./bin/moneygo -config src/github.com/aclindsa/moneygo/example_config.ini
|
2017-06-05 20:30:26 -04:00
|
|
|
|
|
|
|
You should then be able to explore MoneyGo by visiting http://localhost:8080 in
|
2017-10-01 21:15:40 -04:00
|
|
|
your browser. Editing the configuration file supplied will allow you to modify
|
|
|
|
several settings including the port used and whether to serve via FastCGI
|
|
|
|
instead of HTTP (the default).
|
2017-06-16 20:45:11 -04:00
|
|
|
|
|
|
|
## Missing Features
|
|
|
|
|
|
|
|
* Importing investment transactions via OFX
|
|
|
|
* Budgets
|
|
|
|
* Scheduled transactions
|
|
|
|
* Matching duplicate transactions
|
|
|
|
* Tracking exchange rates, security prices
|
|
|
|
* Import QIF
|