moneygo/README.md

84 lines
3.1 KiB
Markdown
Raw Normal View History

2017-06-05 20:24:19 -04:00
# MoneyGo
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
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
$ sudo pacman -S npm curl go python
Install browserify globally using npm:
2017-06-05 20:24:19 -04:00
$ 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
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
2017-06-05 21:07:45 -04:00
Assuming you're in the same directory you ran the above installation commands
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).
## Missing Features
2017-12-02 05:52:55 -05:00
* Importing a few of the more exotic investment transactions via OFX
* Budgets
* Scheduled transactions
* Matching duplicate transactions
* Tracking exchange rates, security prices
* Import QIF