aboutsummaryrefslogtreecommitdiff

Abrechenbarkeit v2

A simpler trust based ledger.

The entire application is contained within abrechenbarkeit.lua. This script implements CGI. It was tested against Lua version 5.4.7. Application data is stored in a number of files in the process working directory (See below).

The repository also contains a configuration file for the gnix http server (gnix.yaml) which is useful for development or proxyless deployments.

Data Files

  • log stores the transaction log as CSV (time,user_a,user_b,amount,pcode,pcount,comment)
  • products stores the product list as CSV (barcode,price,user,name)
  • config stores configuration parameters as ESV (key=value)
  • transaction_sound: URL to sound played when creating a transaction
  • language: Language code, e.g. de, en, es, ja_en, nl, pt_BR, zh_Hans
  • balance_warning: balance in cents to show warning at
  • balance_min: minimum balance to be held by all users, in cents
  • unit: unit used in the UI, e.g. €, $, EUR

Migration from Strichliste

curl 'http://strichliste.example.org/api/user?deleted=false' | jq -r '.users.[] | [ 0, "@Potential", .name, .balance, "", "", "" ] | join(",")' > log
curl 'http://strichliste.example.org/api/article' | jq -r '.articles.[] | [ .barcode, .amount, "@Drinks", .name ] | join(",")' > products

Non-linked User lists

  • list of users with last transaction timestamp and balance in csv format: http://abrechenbarkeit.example.org/?csv
  • list of Users with negative balance: http://abrechenbarkeit.example.org/?negative
  • list of Users with balance lower than : http://abrechenbarkeit.example.org/?negative&maximum=<amount>