1194 research outputs found
Sort by
OSMyBiz: Business Profile Editor for OpenStreetMap
OpenStreetMap My Business (OSMyBiz) is an editor for the collaborative, open mapping project OpenStreetMap (OSM). There are many editors available for OSM. However, none of them allow new or inexperienced users to manage their business (shop, restaurant, etc.) on OSM without knowledge of the OSM-specific data structure.
OSMyBiz already allows users to create and update businesses on OSM.
However, some understanding of the opening hours syntax was still required, and updated businesses were not stored directly in OSM.
Expanding on a previous student research project, the goal of this work is to further improve the user experience and functionality. This should be achieved by introducing a new dialog for entering opening hours that can be used by novice users without any experience. Direct editing of nodes is another important goal. Further, OSMyBiz should record the date when the opening hours have last been checked. Existing functionality should be improved, like the watch list or the "Unsaved Changes" dialog. In addition, the software maintenance effort for the application should be reduced.
A new opening hours editor dialog has been introduced that does not require the user to know the opening hours syntax. OSMyBiz now recognizes the check_date:opening_hours tag, allowing consumers of OSM data to determine how up-to-date the hours are. A changed business no longer needs to be manually copied and saved to OSM by another mapper using another editor. The watch list has received some new features: it will notify users when the opening hours have not been checked for more than a year. Businesses can be added to the watch list without editing the business. In addition, the backend has now been migrated to Python 3.11 and dependencies have been updated.
Several issues have been identified and fixed, such as the login process not handling errors correctly. Unsaved changes are now detected properly, and the unsaved changes dialog now appears when it was supposed to. The overall user interface style of OSMyBiz has been overhauled. The user preferences have been updated and other minor issues have been fixed
SAMT: Compiler and Tools for an Extensible API Modeling Language
Zürcher Kantonalbank maintains various services built on diverse technologies, using proprietary domain-specific languages to model technology-agnostic data and service contracts.
This proven approach is implemented using the Xtext framework, which provides the core infrastructure for parsing source code, validating the resulting model, and integrating with the Eclipse IDE.
As the maintenance roadmap for Xtext is uncertain, Zürcher Kantonalbank faces a long-term operational risk and is looking for a sustainable solution.
The goal of this project is to design and develop a new open-source domain-specific language called Simple API Modeling Toolkit, or SAMT for short.
It retains the technology-agnostic modeling capabilities and employs custom generators that provide support for a specific target language and technology.
A Visual Studio Code extension is developed to provide an easy-to-use and modern development experience.
The development process includes an initial requirements engineering and language design phase, guided by developers familiar with the existing modeling language.
All critical requirements were fully met, with substantial "should-have" and "could-have" requirements also realized.
The project successfully developed the core systems of the new language, including a proof-of-concept code generator for the Kotlin-based Web framework Ktor and the SAMT Visual Studio Code Extension.
Usability tests with employees of Zürcher Kantonalbank have yielded positive feedback.
Future work includes improving the generator architecture and adding more functionality to the SAMT Visual Studio Code Extension
On-Site-Search-Integration-Framework und Anwendung im Swisscom-Design-System
Ausgangslage:
Swisscom betreibt eine Website, genauer ein Design System mit dem Namen 'Swisscom Digital Experience' oder kurz SDX. Es besteht aus einer Komponentenbibliothek, UX-Prinzipien, Designrichtlinien und Regeln, die eingehalten werden müssen um den 'Swisscom-Look' zu erhalten. Zur Navigation auf der SDX-Website ist ein Menü auf der linken Seite vorhanden, welches eine Auflistung aller in SDX verfügbaren Webseiten enthält. Benutzer müssen somit gesuchte Inhalte der SDX-Website über das Menü identifizieren, wobei sie anhand der Begriffe im Menü entscheiden müssen, ob eine Webseite für das Erfüllen eines Suchbedürfnisses infrage kommt oder nicht. Dies ist vor allem für Benutzer, die neu mit SDX arbeiten, mit erhöhtem Zeitaufwand verbunden.
In dieser Bachelorarbeit wurde eine Such-Funktionalität für die SDX-Website konzipiert und umgesetzt. Die Suche soll dem Nutzer einen erhöhten Komfort bei der Suche nach Inhalten sowie bei der Navigation innerhalb von SDX bieten. Durch die Suche soll schnell auf alle erwarteten und zusätzlich relevanten Inhalte, die man mit der Navigation übersehen würde, zugegriffen werden können.
Vorgehen:
In einem ersten Schritt wurde eine Basisanalyse zum Thema On-Site-Search sowie eine Anforderungsanalyse mit der Swisscom durchgeführt. Darauf aufbauend wurden Anforderungen definiert, Prototypen entwickelt und Wireframes ausgearbeitet. Anschliessend wurde ein Konzept zur Umsetzung der Suche, welches die Bedürfnisse der Swisscom erfüllt, erstellt. Das Konzept basiert auf einer clientseitigen Architektur, was bedeutet, dass die Such-Funktionalität im Browser des Benutzers ausgeführt wird. Während der Implementierung wurde die Lösung durch automatisierte Tests sowie Usability-Tests ausgiebig getestet. Das Ergebnis dieser Bachelorarbeit ist ein generisches Such-Integration-Framework, welches die Bereitstellung einer Suche auf einer Website einfach und schnell ermöglicht. Abschliessend wurde mithilfe des Frameworks eine Suche in die SDX-Website integriert.
Fazit:
Usability Tests sowie Gespräche mit der Swisscom haben gezeigt, dass es möglich ist, mit dem entwickelten Such-Integration-Framework eine Suche für die SDX-Website zur Verfügung zu stellen, die den benötigten Zeitaufwand für das Befriedigen von Suchbedürfnissen signifikant reduziert. Es ist möglich mit geringem Aufwand eine Suche in eine bestehende Website einzubetten. Für ein optimales Ausnutzen der entwickelten Funktionalität wurden Empfehlungen bezüglich Optimierungen an der Struktur der SDX-Website an die Swisscom übergeben, welche die Website nicht nur für die integrierte On-Site-Search, sondern auch für Suchmaschinen besser durchsuchbar gestaltet. Während des Projektverlaufs wurden zusätzliche Features für das Such-Integration-Framework spezifiziert, welche im Anschluss an die Bachelorarbeit umgesetzt werden können. Das Such-Integration-Framework wurde über npm publiziert und kann somit auch in anderen Websites Anwendung finden. Um die Integration und Individualisierung einer Suche so einfach wie möglich zu gestalten, wurde nebst einer Projektdokumentation auch eine ausführliche Entwicklerdokumentation verfasst
Serious 3D-VR-Game mit realistischen Stadtwelten
Bisher vorhandene Projekte, welche OpenStreetMap (OSM) Daten als eine 3D-Welt darstellen, haben aus Sicht des Industriepartners zwei Probleme:
Das erste Problem ist, dass nur ein vordefinierter Bereich visualisiert wird. Es soll aber eine weltweite Abdeckung möglich sein. Das zweite Problem ist,
dass diese bestehenden Projekte nicht als Videospiel existieren, sondern eher als Karte, wie Google Maps. Das Ziel dieser Arbeit ist es, eine realistische 3D-Weltkarte zu erstellen,
in der man sich als Spieler frei bewegen kann, ähnlich wie in einem Open-World-Spiel. Für die Geodaten werden Daten von OSM verwendet. Für die Visualisierung der Geodaten wird die freie Game-Engine Godot und die integrierte Programmiersprache GDScript verwendet.
Die Geodaten werden in einem genormten, speichereffizienten Format geliefert, in sogenannten Mapbox-Vektorkacheln. Diese werden mithilfe einer externen Software namens Planetiler aus den OSM-Daten erstellt. Dabei handelt es sich um eine leicht abgeänderte Version des Planetilers.
Godot liest die Daten aus diesen Vektorkacheln aus und decodiert die Geometrien zur Darstellung der Objekte. Für das Auslesen der Vektorkacheln wird eine Software des Industriepartners verwendet, welche im Godot Projekt als Erweiterung integriert werden kann.
Folgende Objekte werden momentan dargestellt: Punktobjekte wie Bäume und Sitzbänke, Polygone wie Gebäude, Linienobjekte (Pfade) wie Strassen, Gehwege und Schienen sowie Flächenobjekte wie Bodenbedeckung, Flüsse und Seen, welche ebenfalls Polygone sind.
Die Qualität der dargestellten Objekte hängt von der Datenqualität in OSM ab. Beispielsweise sieht man in grossen bekannten Städten wie New York, dass viele Gebäude verschiedene Höhen haben.
In weniger bekannten Gegenden haben die meisten Gebäude keine Höhe in OSM. Die Qualität hängt ebenfalls von den Vektorkacheln ab, die vom Planetiler produziert werden.
Zu beachten ist, dass die vom Planetiler generierten Vektorkacheln nicht immer alle OSM-Daten enthalten. In dieser Arbeit hat man sich nicht mit der implementation des Planetilers befasst.
Als Spieler kann man die Software starten, und man landet an einem fix definierten Startpunkt. Der Spieler kann sich überall auf der Welt hinbewegen, oder den Startpunkt selbst anpassen.
Dabei wird immer ein Bereich von 4x4 Vektorkacheln dargestellt. Bewegt sich der Spieler in eine bestimmte Richtung, werden automatisch die neuen Vektorkacheln heruntergeladen und visualisiert.
Der alte Bereich, von dem sich der Spieler entfernt, wird gleichzeitig aus dem Speicher entfernt.
Der Nutzen dieser Arbeit besteht darin, eine Grundlage für die Verbesserung von OSM zu schaffen. In weiterführenden Arbeiten kann dieses Projekt so erweitert werden,
dass der Benutzer auf spielerische Weise Kartendaten aus der realen Welt - zum Beispiel von Mapillary oder Google Street View - mit der 3D-Welt in Godot vergleichen und fehlende Objekte oder Daten ergänzen kann,
beispielsweise die Höhendaten für Gebäude. Dies hilft letztlich, OSM mit Daten anzureichern. Je mehr Daten in OSM vorhanden sind, desto realistischer kann die 3D-Welt dargestellt werden.
Das Hauptziel dieser Studienarbeit bestand darin, eine Software zu entwickeln, welche die Geodaten aus OSM visualisieren kann. Dieses Ziel wurde erreicht.
Die Vektorkacheln beinhalten weitere Daten, mit denen man die Visualisierung realistischer gestalten könnte. Eine weitere Möglichkeit für die detaillierte Visualisierung der OSM-Daten wäre,
mithilfe von Terrain-Datasets die Höhen des Geländes darzustellen
Use of Augmented Reality for Visualizing Ambient Conditions while Sailing
Introduction
Navigating a sailing boat successfully requires a deep understanding of the surrounding environment. Common sailing instruments, which display information numerically or in 2D graphs, often require considerable experience and spatial imagination for interpretation.
This thesis explores the potential of Augmented Reality in enhancing the visualization of ambient conditions, offering a more intuitive and informative approach to sailing navigation.
Goal
The primary goal of this thesis is to evaluate the practicality and effectiveness of integrating Augmented Reality into sailing. Employing a human-centered approach, it aims to develop and validate scenarios where Augmented Reality can enhance the sailing experience, focusing on both usability and technological feasibility.
Method
This research commenced with an extensive literature review to assess the current state of Augmented Reality applications in sailing and related domains. This was complemented by conducting five targeted interviews with a diverse group of sailors, ranging from novices to experts, to gather insights into their specific needs and preferences when sailing. This dual approach allowed for a comprehensive understanding of both the theoretical and practical aspects of Augmented Reality in sailing.
Results
The analysis yielded a series of detailed personas and Augmented Reality application scenarios. These personas represent a spectrum of user needs and preferences in the sailing community. For the most promising scenario, a hardware component architecture was designed, laying the groundwork for future practical implementation. These results collectively provide a nuanced understanding of how Augmented Reality can be tailored to enhance the sailing experience.
Recommendations
The thesis concludes that Augmented Reality holds significant promise for enriching the sailing experience by offering enhanced perception and understanding of ambient conditions. However, the current state of AR technology, particularly in terms of maritime durability and waterproofing, poses a challenge. Consequently, it is recommended to monitor ongoing technological advancements in Augmented Reality. In the meantime, exploring interim solutions or adaptations that can bridge the gap until Augmented Reality technology matures for maritime conditions would be beneficial for the sailing community
Weiterentwicklung einer React-basierten Webanwendung mit Java Spring Boot Microservice: Optimierung und Funktionsausbau
Einleitung: Die Studienarbeit widmet sich dem Projekt „Vanlife Travel“, das darauf abzielt, die
Planung von Campingtrips zu vereinfachen und den Buchungsprozess für Campingplätze zu optimieren.
In vorherigen Arbeiten haben ehemalige Studierende bereits eine Webanwendung entwickelt.
Diese Anwendung umfasst ein Frontend in React und ein Backend, das in Microservices mit Java
Spring Boot unterteilt ist. Trotz dieser vorangegangenen Arbeiten gibt es noch erheblichen Raum für
Verbesserungen, die im aktuellen Semester angegangen werden sollen. Das Projektteam ist in zwei
Gruppen unterteilt, wobei sich unser Team auf den Host konzentriert.
Vorgehen: Die Umsetzung erfolgt durch schrittweise Verbesserungen in drei zentralen Bereichen.
Erstens werden die Gästeinformationen vor der Ankunft optimiert, indem der Host Nachrichtenvorlagen
erstellt und automatische Benachrichtigungen an Vanlifer sendet. Zweitens wird die Buchungsverwaltung
und Profilverwaltung durch Funktionen wie das Erfassen von Buchungen und die
Optimierung der Profilverwaltung durch den Host verbessert. Drittens erfolgt die Integration von
mehreren Hosts, um die Verwaltung von Campingplätzen durch verschiedene Hosts zu ermöglichen.
In jedem Bereich werden zunächst Anforderungen gesammelt und mehrere Umsetzungsvarianten verglichen.
Die optimalste Variante wird dann im Code umgesetzt.
Ergebnis: Die Einarbeitung in den vorhandenen Code stellte eine Herausforderung dar, insbesondere
beim Verständnis der getroffenen Entscheidungen der Vorgänger. In Bezug auf die Implementierung
wurden signifikante Fortschritte erzielt. Der Host verfügt nun über erweiterte Funktionen,
einschliesslich der Verwaltung von Campingplätzen neben den Stellplätzen. Die Integration eines
Mailversands ermöglicht es Vanlifern, wichtige Informationen vor ihrer Ankunft mitzuteilen, und der
Host behält stets den Überblick über kommende Ankünfte auf dem Dashboard. Zudem kann der
Host nun selbständig Buchungen in den Kalender eintragen, das eigene Profil verwalten und damit
wesentliche Aspekte der Interaktion mit den Vanlifern optimieren
LLM Assisted Development
Aufgabenstellung
Das Ziel dieser Arbeit bestand darin, ein Tool oder eine Methode zu entwickeln, die es ermöglicht,
mittels spezialisierter Software zu erkennen, ob ein Prüfungsteilnehmer oder eine Prüfungsteilnehmerin
während einer Online-Prüfung betrügerische Handlungen begeht. Der Einsatz einer solchen Soft-
ware bietet den Vorteil, dass Online-Prüfungen effektiv durchgeführt werden können. Zudem
ermöglicht es, dass Programmierprüfungen nicht mehr manuell, sondern in einem kontrollierten
und überwachten Umfeld absolviert werden können. Der Fokus dieser Arbeit lag speziell auf
der Überwachung der Offline-Aktivitäten der Prüfungsteilnehmenden. Dies umfasst die Beob-
achtung von auffälligen Körperbewegungen und Sprachaktivitäten.
Vorgehen / Technologien
Unser Ansatz zielte darauf ab, die Benutzerfreundlichkeit unserer Software sowohl für Studie-
rende als auch für Lehrende zu maximieren und einen strukturierten Prozess zu etablieren.
Der Ablauf beginnt damit, dass der Studierende die Software aktiviert, die mittels einer Web-
cam ein Video aufzeichnet und über ein ausgewähltes Mikrofon den Ton erfasst. Nachdem die
Prüfungsaufgaben gelöst wurden, wird die Software beendet. Der Studierende erhält dadurch
eine Video- und Audiodatei, die er eigenständig an einen schulischen Server übermitteln kann.
Nachdem der Schulserver alle Audio und Videodateien erhalten hat. Kann der Professor mittels
einer Webseite die Video und Audiodateien analysieren. Während der Analyse wird bei jedem
Prüfungsteilnehmer die Video und Audiodatei analysiert. Dabei wurden bestimmte Kriterien
von uns ausgewählt auf welche sich die Videoanalyse stützen soll.
Gesichtserkennung: In jedem Frame des Videos soll überprüft werden, ob genau eine Person
anwesend ist. Dies ist wichtig, da Pr ̈ufungen in der Regel Einzelarbeiten sind. Sollte keine oder
mehr als eine Person erkannt werden, wird dies als Betrugsversuch gewertet.
Munderkennung: Das System muss ständig den Mund erkennen können. Dies dient dazu,
heimliche Gespräche aufzudecken, auch wenn das Mikrofon während der Prüfung absichtlich
ausgeschaltet ist. Ein Betrugsversuch wird deklariert, sobald der Mund sich öffnet, um die
Spracherkennung zu schützen.
Kopfneigungserkennung: Die Kopfposition wird kontinuierlich überwacht, um auffällige Be-
wegungen, die auf einen zweiten Bildschirm oder ein externes Gerät hinweisen könnten, als
Betrugsversuche zu identifizieren.
Iriserkennung: Diese Technik dient dazu, ungewöhnliches Augenschillen zu erkennen. Sie
soll Prüflinge identifizieren, die zwar ihren Kopf nicht bewegen, aber dennoch nicht auf die
Prüfungsaufgaben schauen.
Resultat
Derzeit ist eine vollständig automatisierte Proctoring-Lösung noch nicht realisierbar. Mensch-
liches Eingreifen bleibt notwendig, um zu entscheiden, ob in bestimmten Situationen Betrug
vorliegt. Unsere Software hat jedoch den Analyseprozess von Audio- und Videodateien erheblich
effizienter gestaltet. Als nächsten Schritt zur Verbesserung der Software könnte die Erfassung
von Online-Aktivitäten in Betracht gezogen werden
Contract Manager App
In der heutigen Zeit werden viele Verträge digital abgeschlossen. Zudem gibt es immer mehr Dienste, welche als Mietmodell angeboten werden und Zahlungen direkt auf der Kreditkarte oder dem Konto belasten. Da kann ein Vertrag schon mal aus dem Blickfeld geraten. Um eine bessere Übersicht über seine Verträge zu erhalten, soll ein zentraler Speicherort geschaffen werden, welcher über anstehende Kündigungstermine aufmerksam macht.
Das Frontend wurde in Form eines Mobile Apps mithilfe Googles plattformübergreifendem Software Development Kit Flutter realisiert. Dieses basiert auf der Programmiersprache Dart. Die Backend-Umgebung ist umgesetzt als REST-API, welche mit NodeJS entwickelt wurde. Dabei wurde TypeScript als Sprache verwendet, da dieses die Typensicherheit gewährleistet. Das Backend kommuniziert mit dem Frontend über einen Caddy Reverse-Proxy und der MongoDB Datenbank. Die Datenbank sowie das Backend werden auf dem Cloudhosting Provider DigitalOcean betrieben. Das Backend sowie der Reverse-Proxy und die Datenbank sind containerisiert mit Docker. Damit ein Passwort-Reset vollzogen werden kann, hat man SendGrid als externe Mailing API verwendet. Für die Push-Benachrichtigung sowie für den Google Analytics Service wurde Firebase genutzt.
Mithilfe der Contract Manager App können Verträge erfasst sowie anderen Familienmitgliedern zugewiesen werden. Die Verträge sind kategorisierbar und werden auf einem Dashboard anschaulich dargestellt. So hat man immer einen Überblick über die aktuellen monatlichen Kosten. Insbesondere hilft die App, auslaufende Verträge und mögliche Kündigungstermine im Blick zu behalten. Dies geschieht mittels Push-Benachrichtigung und ist zusätzlich in der App ersichtlich. Dadurch bietet die App eine optimale Aufbewahrung von Verträgen für Einzelpersonen und Familien an
Buchungsapp für einen alternativen Reiseanbieter - Evaluierung und Erstellung eines Frontend-Prototypen
Einleitung:
Das Bedürfnis nach Erlebnissen in der Natur ist für viele eine Möglichkeit die persönliche Freiheit zu entfalten, die durch die Pandemie verstärkt wurde. Viele Vanlifer möchten spontan in ihren Camper einsteigen, unbeschwert drauflosfahren und dort Übernachten, wo es ihnen gefällt. Da Wildcampen häufig verboten ist und sich die Suche nach einem Stellplatz oft schwierig gestaltet, tritt bereits vor dem Reisestart der erste Frust auf. Die Vanlife Travel GmbH hat sich zum Ziel gesetzt, das Planen eines Campingausflugs einfacher zu gestalten. Dafür soll eine Webapplikation entwickelt werden, die Anbieter von Stellplätzen und Vanlifer zusammenbringt und eine spontane Reise möglich macht.
Im Rahmen der Studienarbeit werden die Anforderungen für die Entwicklung der Applikation gesammelt. Ausserdem sollen die Technologien ausgewählt und ein erster Prototyp mit einigen Funktionalitäten entwickelt werden.
Aufgrund des Umfangs der Studienarbeit arbeiten zwei Teams daran. Die Arbeit ist in Frontend und Backend aufgeteilt. Diese Arbeit umfasst den gesamten Frontend-Teil der Applikation.
Vorgehen / Technologien:
Eine Anforderungsanalyse wurde zusammen mit dem Kunden im Rahmen von einem Workshop durchgeführt, wobei unterschiedliche Arbeitsmittel wie Wireframe und Storyboard angewendet wurden um die Anforderungen zu definieren.
Die Applikation umfasst drei Rollen, welche unterschiedliche Bedürfnisse und Anforderungen haben. Aus den drei Profilen werden unterschiedliche Webansichten mit entsprechenden Funktionalitäten entwickelt. Für das Frontend wurde eine Single Page Application entwickelt. Dabei wurde Typescript als Programmiersprache in Kombination mit der React Library verwendet.
Damit nicht alle Services von Null auf implementiert werden müssen, wurde eine umfangreiche Studie für die Integration von SDKs und APIs von externen Tools durchgeführt (z.B. für den Login- oder Bezahlprozess).
Mit OpenApi wird eine automatisierte Schnittstellenspezifikation für die Kommunikation mit dem Backend verwendet. Weitere Libraries wurden eingesetzt, z.B. für die Erstellung von einem Kalender-Library, für die Verwaltung von freien Stellplätzen.
Fazit:
Der Prototyp der Applikation umfasst einige implementierte Features, die mit dem Backend kommunizieren. Die Schnittstelle von Front- und Backend wurde mit OpenApi definiert und generiert. Dabei war die Herausforderung eine konsistente Datengrundlage zu definieren. Deshalb spielt eine gute Kommunikation zwischen den Teams eine grosse Rolle.
Die Technologie-Analyse zeigt auf, dass verschiedene Tools integriert werden können. Die Schwierigkeit bei ihrer Auswahl ist die Definition und Priorisierung der Anforderungen. Eine umfangreiche Studie ist deshalb wichtig und dient als Entscheidungsgrundlage. Eine zusätzliche Herausforderung für diese Studienarbeit ist die Festlegung einer guten Basis für eine umfangreiche Applikation und die Integration der gewählten Technologien
Fitness Data Platform
Initial Situation: Today’s world and day-to-day life are increasingly digitalized, with gadgets and devices that help with all kinds of tasks. This also includes the world of sports and health. The demand for trackers like smartwatches that monitor a person’s vitals, fitness routine, and more shot up in the last few years. We envision massive potential in services and software in this domain. One of these potential services is a platform where users can synchronize multiple smartwatches or fitness trackers, view the data of these gadgets in a unified dashboard, and share their data with their fitness trainers, doctors, or friends.
Objective: With this project, we aim to build a basis for a platform of this type. The main goal is to create an extendable infrastructure and code that can be further expanded upon. That means we want to provide an initial platform that allows users to synchronize and save their data. The user should be able to view a dashboard where merged data of different trackers is displayed. He should be able to share it with the users he chooses. The platform must be structured to enable new features to be added easily in the future.
Conclusion: In this project, we created a prototype for a Fitness Data Platform by using Typescript, Node.js, React, and MongoDB. Our prototype is a web application divided into frontend, backend, and a NonSQL database. This platform allows users to synchronize their Fitbit Connect and Garmin Connect accounts, view their weekly step count merged from multiple devices in a unified dashboard, and share these dashboards with other users by distributing their unique identification codes. Future implementations include additional support for other fitness tracking devices, more data on the dashboard, and being able to customize dashboards