Monitors money transfers to an account and filters them according to various patterns to report information.
Note:
If all you want is run the service, please head down to the Deployment section.
If you're on Debian, you will need some more packages:
apt install python3-dev build-essential
Enable lingering services for your user:
sudo loginctl enable-linger $USER
Copy config.example.py to config.py and customize contents according to your likings.
blz, user, pin, iban)product_id & fints_url)
bind_host and portdb_pathThe following script will:
Make a virtualenv and install dependencies from requirements.txt
Setup a systemd-user-service money.service
./setup.sh
Make a database:
./manage.py migrate
./manage.py createsuperuser
Run Cron jobs to import TXs
./manage.py runcrons
Start server:
./manage.py runserver
# or, enable and start the systemd service:
systemctl --user enable --now money
go to http://localhost:5002/ and enjoy the stats!
Deployment in dev setup:
Edit uwsgi.ini
Run:
./manage.py collectstatic
./webserver
Do these steps:
export SOURCE_COMMIT=$(git describe --always --no-abbrev)
docker-compose build
docker-compose up
## in another window:
docker-compose exec money ./manage.py migrate
docker-compose exec money ./manage.py cratesuperuser
Once the server is running, go to http://localhost:8000/admin. Log in, and click on "Members". Add some members. The only fields you will have to fill out:
These properties will be used to find the member fee transactions. All the other fields will be filled by the analysis.
After adding some members, do ./manage.py runcrons again to analyze their fees.
GPLv3. Other licenses available upon request.
/recharges.jsonLists drinks-recharge events according to the pattern drinks <uid> <info>, where
The random string at the end is used to differentiate recharges happening on the same day, since SEPA does not generate unique transaction IDs. Instead, it considers the 5-tuple (date, IBAN from, IBAN to, amount, transaction text) as unique key.
loads new transactions from the bank.
performs member fee analysis.
displays an oldschool ASCII report of paid member fees in the last 12 months.
clears all analyzed data from database (except for Fee_Entries). Can be used to rescue the database from botched data if you're messing with the members.py script.
Wrapper for the python-fints library.
Old stuff:
old report: loads transactions and drinks-recharges using an ad-hoc pickle cache defined in cache.py.
Legacy; has been integrated into django app on /recharges.py
webserver: small flask webserver to do nothing but serve the output of drinks.py as JSON.
Can be started as systemd service, using money.service.
Content type
Image
Digest
Size
567.9 MB
Last updated
over 6 years ago
docker pull flipdot/money-utils