Update README.md
This commit is contained in:
parent
c0f2c0dfe6
commit
7448c478a2
91
README.md
91
README.md
@ -0,0 +1,91 @@
|
||||
# Scanner Service und Frontend Software (Kugelstoßmeeting Rochlitz)
|
||||
- Geschrieben von Mario Voigt (2024 - 2025)
|
||||
- License: MIT
|
||||
|
||||
## WARNUNG: UGLY SOFTWARE. Das ist ein "works for me" Projekt
|
||||
|
||||
## Konzept
|
||||
- ein eigenständiger Scan-Service läuft permanent und speichert alle gescannten Barcodes, die von einem Eyoyo Barcode Scanner per USB-Anschluss kommen, in eine SQLite DB ab.
|
||||
- der Scan-Service (usb-scanner.py) basiert auf https://github.com/vpatron/barcode_scanner_python/tree/master
|
||||
- läuft nur, wenn der Scanner angeschlossen und aktiv ist. Anderfalls gibt es Fehlermeldungen
|
||||
- wird als systemd Service installiert
|
||||
- ein separat gestartetes Frontend (GUI) greift auf diese Datenbank zu und prüft die Eingaben bzw. reichert sie an
|
||||
Frontend (sqlite.py) basiert auf https://github.com/tonypdavis/Raspberry-Pi-Barcode-Scanner-/blob/master/ipad_bs_v1.2.py
|
||||
- ruft die gleiche Datenbank auf und liest/schreibt Änderungen
|
||||
|
||||
**Achtung: Frontend und Scan-Service müssen auf die gleiche Datenbankdatei konfiguriert werden!**
|
||||
|
||||
## Installation
|
||||
```
|
||||
dnf install -y systemd-devel python3-venv
|
||||
sudo usermod -G dialout -a $USER #den aktuellen User zu dialout hinzufügen
|
||||
```
|
||||
|
||||
```
|
||||
cd /opt/
|
||||
git clone https://gitea.fablabchemnitz.de/vmario/kugelstossmeeting-ticketing.git
|
||||
cd kugelstossmeeting-ticketing/
|
||||
python3 -m venv venv
|
||||
venv/bin/pip install -r requirements.txt
|
||||
```
|
||||
|
||||
USB-Geräte anzeigen und nach Scanner prüfen:
|
||||
```
|
||||
lsusb -v
|
||||
#idVendor 0x0581 Racal Data Group
|
||||
#idProduct 0x0115 Tera 5100
|
||||
lsusb
|
||||
#Bus 003 Device 003: ID 0581:0115 Racal Data Group Tera 5100
|
||||
```
|
||||
|
||||
USB-Gerät Berechtigungen anpassen:
|
||||
```
|
||||
vim /etc/udev/rules.d/55-barcode-scanner.rules
|
||||
```
|
||||
```
|
||||
# Set permissions to let anyone use barcode scanner
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0581", ATTR{idProduct}=="0115", MODE="666"
|
||||
```
|
||||
|
||||
Änderungen übernehmen:
|
||||
```
|
||||
udevadm control --reload-rules && udevadm trigger
|
||||
```
|
||||
|
||||
Dienst starten und prüfen:
|
||||
```
|
||||
ln -sf /etc/systemd/system/usb-scanner.service /opt/kugelstossmeeting-ticketing/usb-scanner.service
|
||||
systemctl enable usb-scanner.service --now
|
||||
journalctl -f -u usb-scanner.service
|
||||
```
|
||||
|
||||
Datenbank per Shell leeren:
|
||||
```
|
||||
sudo dnf install sqlite3
|
||||
sqlite3 kugelstossmeeting-prod.db "DELETE FROM tickets;"
|
||||
sqlite3 kugelstossmeeting-prod.db "DELETE FROM scans;"
|
||||
sqlite3 kugelstossmeeting-test.db "VACUUM;"
|
||||
```
|
||||
|
||||
Datenbank per DB Browser for SQLite bearbeiten/ansehen:
|
||||
```
|
||||
sudo apt-get install sqlitebrowser
|
||||
```
|
||||
GUI starten:
|
||||
```
|
||||
/opt/kugelstossmeeting-ticketing/venv/bin/python3 /opt/kugelstossmeeting-ticketing/sqlite.py
|
||||
```
|
||||
... oder die .desktop-Verknüpfung benutzen
|
||||
|
||||
## Notwendig für den Betrieb
|
||||
- Notebook mit Netzteil
|
||||
- USB Scanner mit USB-C Kabel
|
||||
- Stempel + Stempelfarbe
|
||||
- Alle Tickets als PDF-Backup (falls es nicht klappt)
|
||||
- eine aktuell befüllte SQ-Lite Datenbank
|
||||
|
||||
## Mögliche Verbesserungen der Software
|
||||
- SQLite DB gegen netzwerkfähige MySQL/PGSQL tauschen und multimandantenfähig machen (2 Rechner, 2 Barcode Scanner)
|
||||
- Programm so beschränken, dass es nicht mehrfach gestartet werden kann (PID Kontrolle o.ä.)
|
||||
- siehe Code-Kommentare
|
||||
- TK GUI modernisieren
|
Loading…
x
Reference in New Issue
Block a user