diff options
author | Holger Cremer <HolgerCremer@gmail.com> | 2018-08-27 19:38:11 +0200 |
---|---|---|
committer | Holger Cremer <HolgerCremer@gmail.com> | 2018-08-27 19:38:11 +0200 |
commit | 8f2ba2050ee78d0e4a47f1277c6bc4422d06170c (patch) | |
tree | c008d2878905e03df7a8bf8bd3330762cc2d8f43 /README.md | |
parent | bb55e121576a5b5d225bfc68c5062f386cc32db9 (diff) | |
parent | 3fc3ea6c6df237dbdf48d14703118b747bf5d647 (diff) | |
download | serial-barcode-scanner-8f2ba2050ee78d0e4a47f1277c6bc4422d06170c.tar.bz2 |
Merge branch 'master' into better_inventory
Conflicts:
README
data/templates/products/entry.html
docker/Dockerfile
docker/init.sh
src/database/database.vala
src/database/db-interface.vala
src/pdf-stock/Makefile
src/pdf-stock/pdf-stock-interface.vala
src/pdf-stock/pdf-stock.vala
src/web/Makefile
src/web/main.vala
templates/menu.html
templates/products/index.html
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..aa6d2b6 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +This is the Shop System of Oldenburg's Hackspace Mainframe. + +The software has been developed as a credit based system for members of the +hackspace. The system depends on a cheap serial barcode scanner, which is used +to establish user sessions (by scanning CODE39 based user codes) and buying +products (by scanning their EAN). The members receive an invoice at the end of +the month, which is also send to the hackspace's treasurer for further processing. + +Since the user barcodes do not contain any advanced authentication mechanism, +security is established by sending daily mails in addition to the monthly +invoice mail. The daily mail (which is only sent if something has been bought) +lists all products bought by the member on this day and the current total sum +for the month. + +The system provides the following features: + * time shifted daily mails (08:00-07:59 of the following day), so that there + is a lower chance of purchases from one visit being split over two mails. + * native rendering of PDF invoices using Cairo (fast & lightweight) + * invoice mails are sent using text/plain and text/html + * support for sending a database backup to a mail address + * curses based user interface + * basic audio support + +The system administration is done using a simple web interface, which provides +support for the following tasks: + * adding information about new products + * restocking products + * changing selling prices of products + * updating the user database by importing a userlist.csv + (regularly generated by our treasurer) + +The system consists of multiple daemons written in Vala, which communicate +with each other using DBus. + +=== Building === + + * Install dependencies listed by `dpkg-checkbuilddeps` via `apt install` + * Build the package with `dpkg-buildpackage -b` + +=== Install === + + * `apt install ./shopsystem.deb` + +=== Configuration === + + * Edit /etc/shopsystem/config.ini + +=== Database === + +To use the web interface, you need add a super user first. Further +user can then be imported using the web interface. Creation of the +initial super user is done with the following commands: + + * `busctl --system call io.mainframe.shopsystem.Database /io/mainframe/shopsystem/database io.mainframe.shopsystem.Database UserReplace "(issssssssxbbsas)" "<userid>" "<firstname>" "<lastname>" "<email>" "<gender>" "<street>" "<postcode>" "<city>" "" 0 0 0 "" 0` + * `busctl --system call io.mainframe.shopsystem.Database /io/mainframe/shopsystem/database io.mainframe.shopsystem.Database SetUserPassword "is" "<userid>" "<password>"` + * `busctl --system call io.mainframe.shopsystem.Database /io/mainframe/shopsystem/database io.mainframe.shopsystem.Database SetUserAuth "(ibbbb)" "<userid>" 1 1 1 1` + +Unfortunately the web interface does not yet allow do add categories +or suppliers. You can use the following queries to add this before +adding products: + + * `busctl --system call io.mainframe.shopsystem.Database /io/mainframe/shopsystem/database io.mainframe.shopsystem.Database AddCategory "s" "Getränke"` + * `busctl --system call io.mainframe.shopsystem.Database /io/mainframe/shopsystem/database io.mainframe.shopsystem.Database AddSupplier "ssssss" "Demo Lieferant" "12345" "Musterstadt" "Musterstr. 5" "+49 1234 56789" "https://www.example.org"` + +It's also possible to directly access the database. While there are +some triggers to keep the database in a sensible state, please be +careful with direct database transactions. For accessing the database +in write mode, you need to kill the shopsystem database process first. +It will be restarted by any process, that needs the database DBus API. + + * `pkill -15 shop-database` + * `sqlite3 /path/to/shopsystem.db` + +=== Display on / off via MQTT === + +You can control display power via MQTT by configuring the MQTT settings (i.e. BROKER, TOPIC) in the config file. + +=== Customize Your Shop === + +Edit the Logo in the logo.txt File. +A helpful tool you will found here [http://patorjk.com/software/taag/](http://patorjk.com/software/taag/) + +=== Some Vala resources === + +* https://wiki.gnome.org/Projects/Vala/ValaForJavaProgrammers +* https://valadoc.org/ +* https://getbootstrap.com/2.3.2/
\ No newline at end of file |