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
|
|
|
|
your primary accounting software.
|
|
|
|
|
2017-06-25 06:11:50 -04:00
|
|
|
## Screenshots
|
|
|
|
|
|
|
|
|
|
|
|
![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-06-16 20:45:11 -04:00
|
|
|
First, install npm, python, curl, and go >= 1.7 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`
|
|
|
|
$ go get -v github.com/aclindsa/moneygo
|
|
|
|
$ 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:
|
|
|
|
|
|
|
|
$ ./bin/moneygo \
|
|
|
|
-port 8080 \
|
|
|
|
-base src/github.com/aclindsa/moneygo/
|
2017-06-05 20:30:26 -04:00
|
|
|
|
|
|
|
You should then be able to explore MoneyGo by visiting http://localhost:8080 in
|
|
|
|
your browser.
|
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
|
|
|
|
* Finishing reports
|