University of Applied Sciences Rapperswil

HSR - Institutional Repository
Not a member yet
    992 research outputs found

    Black Fennec

    No full text
    Introduction: Black Fennec is a simple and easy-to-use application for viewing and editing semi-structured data like JSON in a visually interpreted form. The target audience is people who come in contact with such data regularly and want to collect and manage it in an accessible way. It is positioned between Microsoft Word and Access and can be understood as a data editor. It was originally developed by Lara Gubler, Leonie Däullary, Simon Kindhauser, and Caspar Martens as an engineering project with Thomas Kälin as Supervisor. Building on the previous work, the goal of this project was to release Black Fennec as a stable and mature product with major quality-of-life improvements that potential users are keen to use. Approach / Technology: Improving the stability of the application included major refactorings to many components of the application. Architecture-wise, some of the most significant changes were made to the document subsystem, extension handling, and the type system. This was made possible by an extensive and largely pre-existing automated test suite. The test suite itself also received a significant overhaul. The pre-existing suite, which was using the python unittest package, was largely extended and simplified through the use of pytest. To acquire the necessary skills the developers took part in a multi-day workshop organized by members of the pytest community. Currently, a thousand tests cover around 98% of the code base (branch coverage). Thanks to the migration to GTK 4 and the use of libadwaita, the application integrates seamlessly into the GNOME desktop environment. It also improves Maintainability by providing a large set of components that are responsive and user-friendly by design. We leveraged these technologies in an effort to improve the user experience of the application. Amongst other things, this included the addition of application feedback and better error handling. With the introduction of actions to the extension ecosystem, we have also created a new way of interacting with the application. Actions allow the execution of previously defined operations that operates on a selected data structure. Overall, the extension API has matured and now offers a smorgasbord of extension points including actions, mime types, and more. As a means of distribution, the application is now available as a flatpak package on Flathub. This allows for integrated installation and updates on all major Linux distributions through their native software center. Another advantage of flatpak is that it provides a sandboxed environment that adds another layer of security and protects our users from malicious intent. Result: We are happy to announce that Black Fennec is now available as a stable and mature product. The application can be downloaded from Flathub and installed on virtually any Linux distribution. Complementary to the release of the application, we also published a simplistic website with all relevant information including a short description, a screenshot, and links to other relevant resources. The website is available at https://blackfennec.or

    chuchipirat

    No full text
    Der chuchipirat ist eine Web-Applikation, die Freiwillige in Jugendverbänden in der Planung, Durchführung und Nachbearbeitung von Lagerküchen unterstützt. Das Kochen in grossen Mengen in einem Lager oder Kurs ist gerade in der Vorbe- reitung aufwendig und erfordert spezifische Kenntnisse, damit nicht nur schmack- haftes, sondern auch Essen in passender Menge serviert werden kann. Die Ap- plikation wird aus Eigeninitiative von Gio Cettuzzi programmiert und betrieben. Ziel dieser Arbeit ist es, Verbesserungen entlang der User-Journey ‹Kochen für ein Lager› zu erarbeiten, damit der chuchipirat User:innen in ihrem ehrenamtlichen Engagement bestmöglich unterstützen kann. Der Fokus wird spezifisch auf die Bedürfnisse der User:innen in der Interaktion mit Rezepten gelegt, da diese die Grundlage für eine passende Mengenberechnung, eine vollständige Einkaufsliste und das erfolgreiche Umsetzen des geplanten Menüs darstellen. Die Projektarbeit orientiert sich an dem Vorgehen des Goal-Directed Designs [Goodwin 2009]; dieses wird in den einzelnen Phasen durch passende Modellen und Techniken ergänzt, etwa durch das Universal Model of a User Interface von Baxley [2002] für das Interaction-Design. Das Abstützen auf eine erprobte und fundierte Methode stellt sicher, dass Resultate auf der Grundlage von erhobenen Daten mit Testpersonen und nicht auf der von Annahmen des Projektteams er- arbeitet werden. Aus dieser Projektarbeit resultiert ein validiertes Lösungskonzept für die Interak- tion mit Rezepten im chuchipirat – mit einem Fokus auf der Vorbereitungsphase. Dieses basiert auf den durch User-Research ermittelten Herausforderungen und Bedürfnissen der primären Persona: ‹Simona› ist gut vertraut mit dem Lageralltag und hat bereits einige Male in der Küche mitgeholfen oder die Hauptverantwor- tung für die Lagerküche übernommen. Gerade in der Vorbereitung hat sie jedoch immer wieder Schwierigkeiten mit der Komplexität und dem zeitlichen Aufwand für die Mengenberechnung sowie mit dem Zusammenstellen der Einkaufsliste. Mit der Unterstützung durch chuchipirat soll die Persona ‹Simona› in jedem Lager oder Kurs ihr Ziel erreichen: Essen so zuzubereiten, dass es allen gut schmeckt und möglichst keine Essensreste übrig bleiben. Die Arbeit zeigt auf, dass ein simpler Use-Case in der Umsetzung interessante Herausforderungen aus der User Expe- rience Perspektive hervorbringt. Das neue Lösungskonzept des chuchipirat bietet die notwendigen Funktionalitäten an, damit passende Rezepte eingeplant und auf die korrekten Mengen berechnet werden können. Ferner lässt sich auf diese Wei- se eine vollständige Einkaufsliste mit wenigen Klicks erstellen. Manuelle und/oder wiederholende Arbeiten werden wenn möglich redundant gemacht. Dank dem chuchipirat kann der zeitliche Aufwand, welchen die Vorbereitung einer Lagerkü- che mit sich bringt, reduziert werden. So sollen sich mehr Freiwillige motivieren lassen, ihre Freizeit in die Jugendarbeit zu investieren. Damit leistet diese Arbeit einen Beitrag im Bereich der Freiwilligenarbeit, für welchen bisher wenige digitale Lösungen entwickelt werden

    Type Systems for the OO Programmer

    No full text
    Many software developers learn imperative and/or objectoriented programming first in their career. Meanwhile, most of the research done on programming languages is based on the Lambda-Calculus and functional programming languages. These are often not intuitive to grasp for someone who has worked exclusively with object-oriented languages. Some might even be intimidated by the mathematical terminology. This paper aims to show that most of these methods are in common use in Java, but sometimes better known under different names

    Analyse und Optimierung des Aktionsprozesses des Warenwirtschaftssystems eines Schweizer Grossverteilers

    No full text
    In einem Einzelhandelsunternehmen ist die Warenwirtschaft eine komplexe Tätigkeit. Für jedes Produkt muss die richtige Menge immer verfügbar sein. Tausende von Produkten müssen gleichzeitig verwaltet werden, weshalb es selbstverständlich ist, dass die Warenwirtschaft effizient und automatisiert sein muss. Im Jahr 2013 hat die Firma Ergon Informatik AG in Zusammenarbeit mit Coop eine erste Version der Web-App für die Warenbewirtschaftung mit dem Namen ERGO veröffentlicht. Schnelligkeit und Benutzerfreundlichkeit, kombiniert mit einer modernen Architektur, waren die wichtigsten Anforderungen für Coop. ERGO unterstützt die Coop-Mitarbeiterinnen und -Mitarbeiter bei ihrer täglichen Arbeit und sorgt dafür, dass die Bestandsinformationen in allen Filialen immer aktuell sind. Gute Umsätze hängen von der optimalen Funktionsweise von ERGO ab und viele Prozesse bei Coop sind darauf abgestimmt. Mitarbeitende werden jährlich geschult und ein internes Innovations- und Entwicklungsteam am Coop-Hauptsitz in Basel kümmert sich um die Pflege der Software und veröffentlicht regelmässig Releases. Mehrere Jahre nach seiner Veröffentlichung entstand bei Coop jedoch der Wunsch, innovative Lösungen zu entwickeln und auf die neuen Bedürfnisse der Mitarbeiter und Mitarbeiterinnen zu reagieren. Es ist schwierig und zeitaufwändig, regelmässig Feedback von Mitarbeitern und Mitarbeiterinnen von Coop einzuholen. Heute besteht die Herausforderung darin, die User von ERGO zu beobachten, zu verstehen und Verständnis für ihre Schwierigkeiten aufzubringen, um eine Lösung zu entwickeln, die es ihnen ermöglicht, die ERGO Web-App optimal zu nutzen. Genau hier setzt das Projekt «Analyse und Optimierung des Aktionsprozesses des Warenwirtschaftssystems eines Schweizer Grossverteilers» an. Die Untersuchungen konzentrieren sich auf einen der am häufigsten verwendeten Prozesse in der ERGO Web-App: den Aktionsprozess. Die entwickelten Lösungen ermöglichen es Coop, die Arbeit der Mitarbeiter bzw. Mitarbeiterinnen in Verkaufsstellen besser zu unterstützen

    Automation of Cloud Abuse Report Handling

    No full text
    In recent years, cyber security attacks have become an important issue in the Internet world. There are various attacks such as phishing, malware, denial of service, etc. that aim to breach data. Public cloud providers are most affected with issue and have to deal with it. Therefore, each cloud provider has a point of contact where issues or suspicious activity in the cloud can be reported via email, and each of these reported issues is analysed and investigated. IBM Cloud has a dedicated team of analysts who analyse incoming reports of various types of suspected abuse in the cloud. The process of analysing the reports and deciding on the next steps consists of many repetitive tasks that are very time-consuming for any analyst. This is where an automated solution is needed to save valuable time. The goal of this bachelor thesis is to implement a proof-of-concept that automates the manual and time-consuming tasks performed by analysts. At the beginning of the project, a detailed analysis and elaboration was performed, collecting all requirements together with the main stakeholder of the project, IBM Research Zurich. After prioritising the features to be implemented, implementation was started in the construction phase. Throughout the project, regular meetings were held with stakeholders to receive feedback and new suggestions for improvement. The proof of concept created as the final product was then presented as a demo to analysts at IBM Cloud. As a result, a web application is developed where key information extracted from reports manually from emails is entered on the user interface. This information is then analysed and enriched on the backend of the product using an external API. The enriched information is then displayed on the user interface along with a screenshot of the suspicious website provided by an additional external API. Considering different types of information such as hashes, domain names etc. that can be extracted from reports, a major focus of this project was to build a flexible architecture for the product that would allow it to be easily extended in the future and add new functionality for new indicator types. This was achieved via message queues and task workers in the backend. Keywords: Cloud abuse reports, Enriched reports, Security analysis, FastAPI, React, MongoDB, RabbitMQ, Celery, VirusTotal API, Screenshot AP

    OSMyBiz - Company profile editor for OpenStreetMap

    No full text
    OpenStreetMap My Business (OSMyBiz) is an editor for the collaborative, open-mapping project OpenStreetMap (OSM). It focuses on enabling users to edit businesses on OSM without requiring knowledge about how OSM organises its data, specifically targeting new or inexperienced users. OSMyBiz got created in 2018 as a bachelor thesis project. Since then, it has only gotten minor updates and needs to catch up regarding technologies. Since its creation, new version changes have been available for nearly all dependencies, and some are not even maintained. There have also been significant changes in the tooling used in modern web applications. OSMyBiz did not get optimised for mobile, and therefore, the usage on mobile devices was suboptimal. One of the external APIs used implemented rate-limiting, which caused constant error messages when moving around on the map. Additionally, the application has a growing list of issues and suggestions. The application was brought up to date by migrating from Vue 2 to Vue 3, replacing Vuex with Pinia, switching from webpack to Vite and introducing TypeScript. The existing application got reworked to be responsive in a "mobile-first" approach. A caching mechanism was added to the application to reduce the load on the public overpass API instances. The implementation reduces unnecessary load on the shared infrastructure and improves user experience by reducing issues due to rate-limiting. There are still multiple open issues, ideas and optimisation potential for OSMyBiz. This project has created a solid foundation to implement those further development options. All while ensuring better maintainability and making it simpler to modify the frontend code base

    Contract Manager App

    No full text
    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

    Reconciliation of Point-of-Interest Locations on OpenStreetMap

    No full text
    OpenStreetMap (OSM) is a crowdsourcing project, which creates and distributes open geographical data of and for the world. The continuous change of the real world circumstances can hardly be managed and reflected on maps in general. Consequently, only selective and punctual updates are made and this causes the data on OSM to be neither perfectly accurate nor complete. To overcome the before-mentioned shortcomings of OSM, web scrapers can be used to collect publicly accessible brand data. The collected data will be stored in a scraper system and compared with OSM by a judging system to identify discrepancies. The results will be manually validated by OSM members and then be uploaded to OSM. Various open-source tools have been assessed to find an ideal scraper and judging system to perform the matching between publicly available data and the OSM database. The combination of "AllThePlaces" (ATP, www.alltheplaces.xyz) as the scraper system and "OSM Conflator" as the judging system has turned out to be the most suited. The OSM Conflator obtains the external data from ATP. Profiles are used to pre-process the data before the OSM Conflator performs the matching. Currently, for each brand a separate profile has to be created. During this task, five profiles were created in Python and the data output by the OSM Conflator was analysed. The brands for the profiles were selected by their availability on ATP and their localisation in Switzerland. Thus, the selection consists of Fust, Aldi, Jumbo, Coop Vitality and the public toilets of Zurich city. On average 12.6% of the entries from the external sources do not exist in OSM and were flagged as new entries. One problem is the questionable quality of the tag values, which prevented a match between external data and OSM clues for almost 2% of the entries. On top of that, the data quality of the external sources has room for improvement. In 1.6% of all analysed entries, a matching was not possible as the coordinates from the external sources were too unprecise. Additional findings concern the creation of queries within the OSM Conflator. As a result of schema mismatches between the different data sources, it is challenging to include suitable tags in the profile to create a precise and performant query for a certain brand. Besides the non-standardised schemas, also the matching of the data is challenging due to spelling aspects of brand names, regional differences in brand naming and real-world circumstances, like e.g. company takeovers. The output of the OSM Conflator shows that data reconciliation of OSM data is important. A more generic profile, which pre-processes the data for the OSM Conflator, would be ideal. Allowing a profile to dynamically extract different tags from the external data source and directly generate multiple individual queries for OSM, might constitute an interesting improvement for the OSM Conflator. Furthermore, standards for the data sources would be required to establish a more generic profile. The input data needs to be accurate, consistent and trustworthy. These improvements would also enable the reconciliation of regions rather than brands alone

    Segment Routing v6 (SRv6) Network Programming

    No full text
    Initial Situation Configuring network devices using the command line interface (CLI) is usually time consuming because all commands have to be written for each function inside devices. These commands must be applied to each device individually. Furthermore, the specific commands have to be known and correct. These reasons make CLI not very user friendly. Objective The goal of this work is to develop a web based SRv6 Network Programming Web App that allows a user to configure a given network. Configuring SR endpoint behaviour, such as L3VPN on a network should be possible. The user selects which configuration he/she wants to have on a specified router of the network, then the app configures the devices as desired. The SRv6 Network Programming Web App only shows the ProviderEdge routers of the provided network topology, as only these routers are required to configure SRv6. Generally speaking, this project is designed to facilitate the configuration of SRv6 network programming on endpoints by providing a web app. Result A web app was developed with ReactJS, which allows L3VPN to be configured. For this purpose, a single source of truth was built, which stores the data in a PostgresDB. The connection to the frontend is done via an API based on GO. To write the data from the single source of truth to the devices, a GO component was developed that uses Gonja-netconf, Gornir and Scrapligo

    Admin-Portal (SA)

    No full text
    Ausgangslage Das Unternehmen 2BIT betreibt eine Software-as-a-Service Lösung für Aufgaben im Bereich Personalwesen mit dem Namen 2getHR. Diese erlaubt gängige Prozesse wie Zeiterfassung, Ferien- und Spesenmanagement und On-Boarding automatisiert und benutzerfreundlich durchzuführen. Mit zunehmender Beliebtheit der Applikation entsteht für 2BIT ein erhöhter Supportaufwand. Um den Supportprozess zu unterstützen, wurde ein rudimentäres Admin-Portal entwickelt, welches es erlaubte, einige supportrelevante Daten einzusehen und bestimmte Daten zu löschen. Das bestehende Admin-Portal deckte jedoch nicht alle notwendigen Anforderungen ab. Zudem wurde nur eine Auswahl der supportrelevanten Daten abgebildet. In diesem Projekt wurde das bestehende Admin-Portal ausgebaut und benutzerfreundlicher gestaltet, um den Supportprozess zu vereinfachen und effizienter zu gestalten. Das neue Tool erlaubt es alle supportrelevanten Daten einzusehen, zwischen den Objekten zu navigieren, diese zu löschen und klar definierte Änderungen an Daten vorzunehmen. Ansatz Die Funktionalität und die Bedienbarkeit des neuen Admin-Portals wurden auf die Endbenutzer-Basis ausgelegt. In einem ersten Schritt wurde eine Analyse der Anforderungen des Supports durchgeführt, um ein Bild der bestehenden Situation zu erhalten. Basierend auf dieser Analyse wurden Anforderungen und Wireframes ausgearbeitet und gemeinsam mit dem Product Owner und dem Supportpersonal von 2BIT auf Bedienbarkeit und Relevanz geprüft. In Form einer Priorisierung wurde bestimmt, in welcher Reihenfolge die Anforderungen umgesetzt werden sollten. Mit der Analyse als Grundlage wurde eine Applikation konzipiert, welche die Bedürfnisse des Supports bestmöglich abdeckt. Während der Konstruktion wurde die Applikation wiederholt mit 2BIT getestet und die Priorisierung angepasst. Das Resultat ist eine Applikation, welche auf die Bedürfnisse von 2BIT abgestimmt ist. Fazit Automatisierte und manuelle Tests haben gezeigt, dass das neue Admin-Portal von 2BIT im produktiven Betrieb genutzt werden kann. Die bestehende Funktionalität des alten Tools wurde überarbeitet, fehlende Funktionen ergänzt sowie die Benutzbarkeit erhöht. Ein Ausblick auf weitere Features wurde ausgearbeitet. Diese können von 2BIT zu einem späteren Zeitpunkt umgesetzt werden. Da das Tool im produktiven Betrieb eingesetzt werden soll, wurde besondere Aufmerksamkeit auf die Stabilität und Korrektheit der Features gelegt. Dies wurde mit Tests verifiziert. Um eine möglichst reibungslose Übergabe des Projektes an 2BIT zu ermöglichen, wurde die Applikation nach Vorgaben von 2BIT dokumentiert und der Code gemäss Coding Guidelines und Clean Code geschrieben. In der folgenden Dokumentation wird ersichtlich, wie die Planung und Umsetzung des Projektes gehandhabt wurde und wie die enge Zusammenarbeit mit 2BIT das Resultat beeinflusst hat

    0

    full texts

    992

    metadata records
    Updated in last 30 days.
    HSR - Institutional Repository is based in Switzerland
    Access Repository Dashboard
    Do you manage Open Research Online? Become a CORE Member to access insider analytics, issue reports and manage access to outputs from your repository in the CORE Repository Dashboard! 👇