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
|
|
|
|
|
2017-12-02 05:52:55 -05:00
|
|
|
* [Import from OFX](./docs/ofx_imports.md) and
|
|
|
|
[Gnucash](http://www.gnucash.org/)
|
2017-07-14 08:17:49 -04:00
|
|
|
* 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-12-06 05:26:53 -05: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
|
|
|
|
2017-12-06 05:26:53 -05: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:
|
|
|
|
|
2017-12-06 05:26:53 -05:00
|
|
|
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
|
2016-10-05 14:17:17 -04:00
|
|
|
|
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
|
2017-12-05 05:43:28 -05:00
|
|
|
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.
|
2017-06-05 20:30:26 -04:00
|
|
|
|
2017-06-05 20:24:19 -04:00
|
|
|
## Running
|
2016-10-05 14:17:17 -04:00
|
|
|
|
2017-12-05 20:56:57 -05:00
|
|
|
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/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:
|
2016-10-05 14:17:17 -04:00
|
|
|
|
2017-12-06 05:26:53 -05:00
|
|
|
./bin/moneygo -config src/github.com/aclindsa/moneygo/example_config.ini
|
2017-06-05 20:30:26 -04:00
|
|
|
|
2017-12-05 20:56:57 -05:00
|
|
|
You should then be able to explore MoneyGo by visiting https://localhost:8443 in
|
2017-10-01 21:15:40 -04:00
|
|
|
your browser. Editing the configuration file supplied will allow you to modify
|
2017-12-05 20:56:57 -05:00
|
|
|
several settings including the port used, SSL certificate locations, and whether
|
|
|
|
to serve via FastCGI instead of HTTPS (the default).
|
2017-06-16 20:45:11 -04:00
|
|
|
|
|
|
|
## Missing Features
|
|
|
|
|
2017-12-02 05:52:55 -05:00
|
|
|
* Importing a few of the more exotic investment transactions via OFX
|
2017-06-16 20:45:11 -04:00
|
|
|
* Budgets
|
|
|
|
* Scheduled transactions
|
|
|
|
* Matching duplicate transactions
|
|
|
|
* Tracking exchange rates, security prices
|
|
|
|
* Import QIF
|