Die Problemstellung

Im Betrieb hat sich ein ansehnlicher Bestand an Büchern angehäuft, der viele thematische Bereiche abdeckt und durch den sich jeder Mitarbeiter bei Bedarf über ein breites Spektrum an Protokollen, Software, Programmiersprachen, Best Practices usw. informieren kann. Herauszufinden, ob die Sammlung

bereits ein Buch zu einem speziellen Thema enthält, kann sich dennoch als schwierig erweisen. Die Regale auf gut Glück nach einem bestimmten Begriff zu durchsuchen, ist nicht immer von Erfolg gekrönt - vielleicht hat sich aber auch bereits ein anderer Kollege das gewünschte Buch ausgeliehen.

 

Lösungsansatz

Damit die Suche nach interessanten Büchern schneller vonstatten geht, wurde die Implementierung einer kleinen webbasierten Anwendung angestoßen, in der möglichst alle vorhandenen Bücher schnell eingebunden und dann möglichst bequem durchsucht werden können. Nötig ist es damit nur, einen Suchbegriff auf der internen Website einzugeben, und es werden alle eingepflegten Bücher gezeigt, die der Suche entsprechen.

Auch kann der Standort des Buches (z. B. Büro XY) bzw. der Name desjenigen, der sich das Buch momentan ausleiht, gespeichert werden, damit man nicht unter Umständen an der falschen Stelle sucht, wenn man bereits in der Bücherliste fündig geworden ist.

Manche Buchtitel allerdings geben nur ausgesprochen kurz den Inhalt des Buchs wieder. So kurz, dass der Titel mögliche Suchbegriffe, die aber völlig passend wären, nicht enthält und so das entsprechende Buch nicht gefunden wird.
Hier hilft die Verwendung von Tags, die Büchern manuell hinzugefügt werden können und auch mit durchsucht werden.
Das gilt im Speziellen für die Suche nach übergeordneten Themen und Abkürzungen, nach denen gesucht wird, die aber nicht im Titel stehen.

 

Implementierung

Die Anwendung wurde mithilfe von Go (golang), dem in der Standard-Bibliothek mitgelieferten HTTP-Server und einigen weiteren Abhängigkeiten entwickelt.

Als Datenquelle für die Bücherliste dient die REST-API von Google Books, die sowohl Informationen wie Titel und Autor als auch meist ein Thumbnail des Buch-Covers liefert. Um ein neues Buch zur Bücherliste hinzuzufügen, reicht es also aus, den Barcode des Buches (schnell auslesbar mithilfe eines entsprechenden Scanners) der meist der ISBN entspricht, in der Oberfläche einzugeben und - sofern es gefunden wurde - das Buch dann zu bestätigen. Die Anbindung weiterer Datenquellen ist ebenso möglich.

Als Datenbank wird SQLite genutzt, wobei ein Wechsel auf eine andere Datenbank durch das SQL-Interface und die verschiedenen Driver in Go ohne größeren Aufwand möglich wäre.

Die Liste derjenigen, die ein Buch ausleihen können, wird des Weiteren vom betrieblichen LDAP-Server abgefragt.

Auf Seiten der Oberfläche kommt das Framework Bootstrap und Icons aus FontAwesome zum Einsatz - genauso wie jQuery und eine Auswahl an jQuery-Plugins, die einzelne Funktionen auf Browser-Seite erfüllen (wie zum Beispiel Select2 für die Auflistung von Tags und die Auswahl des Standorts).

Zusätzlich zu der Bücherliste können über die Anwendung auch E-Books verwaltet werden.