FindLunch

Projektbezeichnung

FindLunch Online Service (FindLunch OS)

Projektmitarbeiter

  • Prof. Dr. Peter Mandl
  • Max-Emanuel Keller, M. Sc.

Projektidee und Projekthintergrund

Open-Source-Entwicklungsprojekt zur anwendungsorientierten Erprobung aktueller Web- und App-Techniken sowie zur Untersuchung der Anforderungen an weit verteilte Internet-Dienste  (siehe https://github.com/CCWI/findLunch).

Vor allem in Ballungszentren und auch rund um Lehreinrichtungen wie Schulen und Hochschulen suchen viele Menschen täglich meist mit begrenzter Zeit ein passendes Essensangebot. Die in der Umgebung vorhandenen Angebote sind aber nicht immer allen bekannt. Viele kleine Anbieter um die Ecke machen wenig Werbung für ihre Produkte. Allzu viel Zeit für die Suche nach einem Mittagessen bleibt im stressigen Alltag von Studierenden und Young Professionals meist auch nicht. Daher ist ein schnelles Finden von Angeboten aus der unmittelbaren Umgebung besonders interessant.

Zielsetzung

Ziel des Open-Source-Projekts FindLunch OS ist die Entwicklung eines mobilen Online Service für die Unterstützung der Suche nach Essensangeboten in der Umgebung des Suchenden, insbesondere für Studierende und Young Professionals.

Die Studierenden werden im Rahmen von Projektstudien, Studienarbeiten und Abschlussarbeiten in die Projektentwicklung eingebunden, von der Anforderungsdefinition bis zur Inbetriebnahme. Dabei werden moderne Technologien für mobile Apps und für die Web-basierte Entwicklung erprobt, Modellierungstechniken eingesetzt sowie aktuelle Softwarearchitekturkonzepte auf den Prüfstand gestellt. Die entwickelten Anwendungen werden in einer konkreten Ablaufumgebung eingesetzt. Darüber hinaus werden konkrete Geschäftsmodelle entwickelt und experimentell evaluiert. In weiterführenden Arbeiten wird untersucht, wie derartige Online Services weltweit verteilt werden können und welche Herausforderungen hierbei zu bewältigen sind.

Architektur

Die folgende Abbildung zeigt die FindLunch-Architektur, wobei zwischen Front- und Backend-Komponenten unterschieden wird. Es handelt sich um eine Client-/Server-Architektur Im Frontend sind Web-Anwendungen und mobile Apps (Android, iOS) für die Nutzung des Dienstes vorgesehen. Im Backend werden die serverseitigen Dienste und die providerseitigen Anwendungen für die fachliche und technische Administration bereitgestellt. Der Zugang der mobilen Apps zu den im Backend verwalteten Ressourcen wird über RESTful Webservices ermöglicht. Web-Anwendungen kommunizieren direkt über HTTP(S) mit dem Backend. Die persistenten Daten sind in einer relationalen Datenbank (FindLunch Datastore) abgelegt.

Entwicklungstechnologien und -umgebungen

Das Projekt dient auch zur Erprobung verschiedener Technologien und Entwicklungsumgebungen. Aktuell werden verwendet:

  • Android (Customer mobile App)
  • iOS (Customer mobile App)
  • Ionic (Hybride Customer mobile App)
  • Linux (serverseitiges System)
  • MariaDB als Datenhaltungssystem
  • Apache Tomcat als serverseitiger Container
  • Spring Boot, Spring Security, Spring Data JPA with Hibernate, Spring MVC
  • Java (Android und Backend) und Swift (iOS)
  • Spring for Android
  • Jackson (Java->JSON)
  • Google Play Services (Geocoding API, Maps API)
  • Google Firebase Cloud Messaging (FCM)
  • Google Maps Android API utility library
  • Thymeleaf Template Engine
  • Bootstrap
  • Entwicklungsumgebungen: Eclipse, Xcode, Android Studio
  • Sourcecode-Verwaltung mit GitHub bzw. Git
  • Build-Prozess über Apache Maven (Backend), Gradle (Android)
  • Travis CI für das Continuous Integration mit GitHub
  • IText für die Erstellung der Rechnung in PDF
  • XZing um QR-Codes zu erstellen
  • XZing Android Embedded zum Scannen der QR-Codes
  • PayPal