CheckIn BeOut

Smart e-Ticketing solution for public transport

Einleitung

CheckIn and BeOut ist ein elektronisches Ticket-System für ÖPNV, im Besonderen Busse, mit Fokus auf einer automatischen Ausstiegserkennung. Eine Besonderheit bei diesem Praktikum ist ein Kooperationspartner aus der Industrie, der IVU Traffic Technologies AG aus Aachen. Die Projektvision beinhaltet ein System, das den Fahrgästen erlaubt, bei Fahrtantritt über eine mobile App ein Ticket zu erwerben (CheckIn). Die Abrechnung der Fahrten erfolgt digital und wird auf den Bedarf des Fahrgastes optimiert. Um die Benutzung für den Fahrgast so einfach wie möglich zu gestalten, soll der Ausstieg automatisch erkannt werden (BeOut), das heißt, es ist bis auf das Auswählen der Fahrt, dem CheckIn, keine weitere Interaktion des Fahrgastes notwendig, um eine Fahrt erfolgreich abzuschließen.

Team

Joel Hermanns
Andre Mann
Shi Chen Niu
Jan-Hendrik Telke
Thomas Winkler

Matthias Vianden
Andreas Steffens

Kontakt: cibo@swc.rwth-aachen.de

Bei Systemen ohne BeOut haben deren Betreiber festgestellt, dass ihre Fahrgäste meist vergessen haben sich auszuchecken. Im Rahmen dieses Praktikums soll vor allem für die Idee des BeOuts ein Proof of Concept entwickelt werden. Der Kooperationspartner stellte dafür eine Schnittstelle mit Echtzeitdaten des Busverkehrs in Aachen bereit. Nutzer sollen über eine App einchecken und ihr Ausstieg soll erkannt werden. Einige Randfälle sowie mögliche Betrugsszenarien sowie eine digitale Weiterverarbeitung der Daten etwa in Form einer Abrechnung wurde hierfür zunächst außer Acht gelassen.

Architektur & Technologien

Das System setzt sich aus Teilsystemen mit unterschiedlichen Technologien zusammen, die über Rest-Services kommunizieren . Über eine Android-App checkt sich der Fahrgast ein und bis die Fahrt abgeschlossen ist wird diese in einer in Node.js implementierten Middleware verwaltet. Diese liefert der App zusätzlich Funktionen zur Suche von Verbindungen und zum Einchecken einer Fahrt. Die nötigen Echtzeitinformation der Busse erhält das Node.js Backend von dem durch die IVU bereitgestellten URA-Service.

Während der Fahrt übermittelt die App dem Node.js Backend regelmäßig die aktuelle Position des Fahrgastes, welche über die GPS Sensorik des Smartphones bestimmt wird. Das Node.js Backend liefert daraufhin der App den aktuellen Status der Fahrt und nutzt dazu wiederrum den URA-Service. In einer MongoDB werden nötige Informationen zwischengespeichert. Ist die Fahrt abgeschlossen, so wird diese an ein JavaEE-Backend zur dauerhaften Persistierung weitergegeben.
Vergangene Fahrten und Nutzer werden über den mit JavaEE entwickelten Server und einer MySQL-Datenbank verwaltet. Ein Rechtesystem erlaubt unterschiedliche Sichten auf die gespeicherten Daten für Fahrgast bzw. Betreiber. Das zugehörige Front-End ist eine Single Page Application in AngularJS und erlaubt einfachen Zugriff über einen Webbrowser. Der Fahrgast kann seine abgeschlossenen Fahrten einsehen. Der Betreiber erhält diverse Statistiken über die Auslastung seiner Busse über in D3.js implementierte Visualisierungen.

Prozess

Die Entwicklung basierte auf einem an Scrum angelehnten, agilen Modell. Der Ablauf erfolgte in meist zwei wöchigen Sprints. Die Studenten legten die abzuarbeitenden Issues selbst fest. An zwei Terminen pro Woche trafen sich die Betreuer und alle Praktikanten um den aktuellen Status und Probleme zu besprechen und am Ende des Sprints wurden in einer Präsentation die erreichten Resultate dargestellt. Wichtige Milestones, wie die Alpha und die Beta, waren von den Betreuern vorgegeben. Jede Gruppe war für die weitere Organisation selbst verantwortlich.
Um die agile Entwicklungsweise zu unterstützen wurden unterschiedliche Tools eingesetzt. Jira wurde mit der Agile-Erweiterung zum Planen einzelner Sprints und Verwalten des Backlogs genutzt. In Confluence wurden Dokumentationen angelegt. Als Versionskontrolle kam Git zusammen mit Stash zum Einsatz. Mithilfe von Bamboo wurde stets die aktuelle Version der Software gebuildet, getestet und deployed.

Das System konnte unter Realbedingungen gestestet werden, da Live-Daten zu den Bussen bereit gestellt waren. Unter anderem fielen dabei GPS-Probleme mit manchen Smartphones in den Bussen auf. Zusätzlich wurde zur Qualitätskontrolle SonarQube genutzt, um hilfreiche Eindrücke über die Codequalität und -quantität zu gewinnen.

Erfahrungen

Trotz unterschiedlicher Erfahrungswerte und vieler unbekannter Technologien konnten alle Gruppen in einer kurzen Zeitspanne einen Prototypen entwickeln, der alle Anforderungen des Kunden erfüllt hat. Der Fokus auf einzelne Probleme und Features durch die Sprint basierte Entwicklung brachte eine hohe Produktivität ein. Die bereit gestellte Virtuelle Maschine durch die Betreuer und die Automatisierung von Testen und Deployment sowie der Qualitätsanalyse des Codes haben zusätzlichen Arbeitsaufwand minimiert und die Fokussierung auf die Entwicklung des Prototypen weiter gestärkt.

Nach einer gewissen Eingewöhnungsphase an die Tools und Scrum als Vorgehensmodell haben eben jene deutlich die Effektivität erhöht. Bei kleineren Problemen mit den Technologien konnten die Betreuer schnell helfen. Insgesamt war die bereitgestellte Infrastruktur und Betreuung ein wichtiger Faktor für ein erfolgreiches Praktikum.

Organisation

Die Studenten waren in drei unabhängigen Gruppen zu je fünf Leuten eingeteilt, die das komplette Softwaresystem gebaut haben. Für einen schnellen Einstieg in die Entwicklung stellten die Betreuer eine vorkonfigurierte Virtuellen Maschine bereit. Des weiteren wurde ein Vorschlag für die Architektur, die minimalen Anforderungen an das System und die Projektvision geliefert.

Eine genaue Anforderungsanalyse erfolgte zusammen mit dem Kooperationspartner als Kunde. Bei regelmäßigen Treffen mit diesem wurde der Fortschritt demonstriert, analysiert sowie etwaige Fragen geklärt. Die fertigen Prototypen wurden zum Abschluss im Unternehmen präsentiert.
Aktuell sind drei Bachelorarbeiten – in enger Kooperation mit der IVU – in Arbeit, die auf dieses Projekt aufbauen. Weiterhin plant die IVU, das System weiterzuentwickeln und produktiv einzusetzen.

Medien
Präsentationsposter – 2014