summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorJohannes Rudolph <johannes.rudolph@gmx.com>2018-01-13 19:21:48 +0100
committerSebastian Reichel <sre@ring0.de>2018-06-28 01:52:53 +0200
commit3f628663b68585f4e8aeb11143b483a3b1ec8ae2 (patch)
treea83b9009e25f21869ef096d37fcc62a836515968 /README.md
parentf6f85e718f9ade5453468a69441ea3b103d1e100 (diff)
downloadserial-barcode-scanner-3f628663b68585f4e8aeb11143b483a3b1ec8ae2.tar.bz2
rename README to README.md
Diffstat (limited to 'README.md')
-rw-r--r--README.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..830ae5b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,90 @@
+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.
+
+Build Dependencies:
+ * apt install build-essential valac libesmtp-dev libgpgme11-dev libncursesw5-dev libncurses5-dev libgee-0.8-dev libgmime-2.6-dev libarchive-dev libgstreamer1.0-dev libgtk2.0-dev librsvg2-dev libsoup2.4-dev libsqlite3-dev libpango1.0-dev libssl-dev dbus-x11 mdbus2 policykit-1
+
+Additional runtime dependencies:
+ * apt install fonts-lmodern gstreamer1.0-alsa gstreamer1.0-plugins-base
+
+Suggested runtime dependencies:
+ * apt install sqlite3
+
+== Installation ==
+
+You can install to different location or use a different username,
+but you need to modify a few things.
+
+=== Git Setup ===
+
+ * adduser "shop" with homedir in /home/shop
+ * clone git repository into /home/shop/serial-barcode-scanner
+
+=== Build the Software ===
+
+ * ./configure
+ * make shop.db
+ * make
+
+=== DBus Configuration ===
+
+ * cd dbus
+ * make
+ * sudo make install
+
+=== Systemd ===
+
+ * cd systemd
+ * sudo make install
+
+=== Configuration ===
+
+ * mv example.cfg ktt-shopsystem.cfg
+ * edit ktt-shopsystem.cfg
+
+=== Database ===
+
+ * Create user
+ `sqlite3 shop.db "INSERT INTO users (id, email, firstname, lastname) VALUES (1, 'test@tester', 'Firstname', 'Lastname');"`
+ * Setup user password
+ `mdbus2 -s io.mainframe.shopsystem.Database /io/mainframe/shopsystem/database io.mainframe.shopsystem.Database.SetUserPassword 1 "password"`
+ `sqlite3 shop.db "UPDATE authentication set superuser = 1, auth_users = 1, auth_products = 1, auth_cashbox = 1 where user = 1";`
+ * Demo Data
+ `sqlite3 shop.db "INSERT INTO categories (name) VALUES ('Getränke')";`
+ `sqlite3 shop.db "INSERT INTO supplier (name,city,postal_code,street,phone,website) VALUES ('Demo Lieferant','Musterstadt','12345','Musterstraße 5','+49 1234 56789','https://www.ktt.de');"`
+
+== 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/)