Herzlich willkommen auf dem Blog der exensio GmbH

exensio ist ein unabhängiges Software-Unternehmen von erfahrenen IT Beratern und Architekten. Zu unseren Kunden zählen namhafte deutsche Großunternehmen.

exensio verbessert das Kommunikations- und Informationsmanagement von Unternehmen. Auf Basis sinnvoller und zweckmäßiger Technologien erarbeiten wir flexible und übergreifende Lösungen für webbasierte Informationssysteme. Abhängig von den Kundenanforderungen realisieren wir Web Applikationen sowie Lösungen auf Basis von Web Content Management- und Portalsystemen. Integrativ, wirtschaftlich und anwenderfreundlich!

Hier gelangen Sie zur exensio GmbH.

Dienstag, 16. Februar 2016

ShipIt Day 2016: iBeacon Tracking Server

Für unser Ship-It Day Projekt "Mit iBeacons Arbeitszeit erfassen" haben wir eine App für Smartphones und eine Server-Applikation entwickelt. Nachdem wir im ersten Artikel das Projekt und die mobile App vorgestellt haben, geht es in diesem Artikel um die Server-Applikation.

In der Server-Applikation werden alle Daten gespeichert, aggregiert und verwaltet. Die App wurde mit Grails 3.1.1 und Bootstrap 4 (Alpha) umgesetzt.

Die Funktionalitäten

Auf der Startseite wird angezeigt, welche Mitarbeiter gerade im Büro sind und wann sie angekommen sind. Im unteren Teil werden die Mitarbeiter angezeigt, die nicht im Büro sind, und wann sie das Büro verlassen haben.
Für jeden Mitarbeiter gibt es eine Detail-Ansicht, wo die Arbeitszeit für die letzten Tage, Wochen usw. angezeigt werden. Es wird auch eine Liste mit den einzelnen Events angezeigt, wie sie von den Smartphones geschickt wurden.
Außerdem können neue Mitarbeiter angelegt, die wichtigsten Mitarbeiter-Daten bearbeitet und Geräte einem Mitarbeiter zugeordnet werden. Sendet ein neues Gerät Daten an die Applikation, taucht es automatisch in der Übersicht auf und kann einem Mitarbeiter zugeordnet werden.

REST-API

Die Daten werden über eine REST-Schnittstelle von der App entgegen genommen. Über diese Schnittstelle kann die App ebenfalls die aggregierten Daten für einen Mitarbeiter abrufen. Außerdem ist eine Schnittstelle für unser zweites ShipIt-Day Projekt, das Dashboard, vorhanden. So könnte auch das Dashboard die anwesenden Mitarbeiter anzeigen.

Durch Grails 3 kamen diese Schnittstellen praktisch umsonst bei der Entwicklung mit. Grails erkennt automatisch, ob der Client HTML oder JSON empfangen will, und sendet selbständig die richtige Antwort. Eine Funktion, die alle anwesenden und abwesenden Mitarbeiter in zwei Listen zurück gibt sieht z.B. so aus:
    def index() {
        List<User> usersInOffice = User.findAllByStatus(UserStatus.IN_OFFICE)
        List<User> usersOutOfOffice = User.findAllByStatus(UserStatus.OUT_OF_OFFICE)

        def result = [usersInOffice: usersInOffice, usersOutOfOffice: usersOutOfOffice]

        respond result
    }
Auch die Integration von Bootstrap gelingt auf Anhieb und macht eine solche Anwendung ohne großen Aufwand gleich um einiges hübscher.

Weiter-Entwicklung

Für einen produktiven Einsatz fehlen noch einige Komponenten, wie z.B. eine Authentifizierung und die sichere Übertragung der Daten. Diese müssten noch nachgerüstet werden.
Als Erweiterungen könnten wir uns noch eine Verwaltung für die iBeacons vorstellen. Die Applikation könnte mit mehr Informationen über die iBeacons auch feststellen, in welchem Raum sich welcher Mitarbeiter aufhält. So könnte dann auf dem Dashboard immer angezeigt werden, wenn die heiß begehrte "Telefonzelle" besetzt ist.

Fazit

Der ShipIt Day hat viel Spaß gemacht und für das eine oder andere Gelächter gesorgt. Die Projekte sind für zwei Tage Entwicklung ganz gut gelungen und wir freuen uns schon auf den nächsten ShipIt Day.

Keine Kommentare:

Kommentar veröffentlichen