Paula Matthies

Softwareentwicklung

Portfolio

Ein Einblick in meine bisherigen Arbeiten aus der Softwareentwicklung – von Web- und mobilen Anwendungen bis hin zu KI und Spieleprogrammierung.

Name
Paula Matthies
Studium
B.Sc. Informatik – Medieninformatik, Hochschule Osnabrück
Bachelorarbeit
CaseFinder bei basecom, Note 1,0

KI · 2025/26 · Bachelorarbeit bei basecom

CaseFinder

Bei basecom ist das interne Firmenwissen auf Confluence und Jira verteilt. CaseFinder ist ein Chatbot in Slack, der Fragen dazu beantwortet und die passenden Quellen verlinkt.

Umfang
allein konzipiert, entwickelt und ausgewertet
Schwerpunkt
KI-gestützte Wissenssuche mit RAG
Code
Unternehmensprojekt, nicht öffentlich
Ausschnitt aus der Demo, gekürzt: Frage in Slack, Antwort mit Quellen im Thread.

So funktioniert es

RAG-System · Docker Compose SlackFrage per @Mention LLM-PlattformGoogle Gemini WissenssystemeConfluence · Jira Chatbot InterfaceNode.js · Slack Bolt RAG BackendSuche, Kontext, Antwort Ingestionalle 15 Minuten VektordatenbankOpenSearch · Chunks + Embeddings 123
Architektur nach dem C4-Modell, vereinfacht aus der Bachelorarbeit.
  1. 1
    Wissen sammeln

    Ein Dienst ruft regelmäßig Seiten aus Confluence und Tickets aus Jira ab, teilt sie in kurze Abschnitte und speichert sie durchsuchbar.

  2. 2
    Passendes finden

    Zu einer Frage sucht CaseFinder die passenden Abschnitte, nach Bedeutung und nach Stichworten.

  3. 3
    Antwort erstellen

    Das Sprachmodell Gemini formuliert daraus die Antwort. Es ist angewiesen, nur diese Abschnitte zu nutzen und sonst nicht zu antworten. Die Quellen werden angehängt, damit man die Antwort nachprüfen kann.

Meine Rolle

  1. Konzipiert

    Anforderungen über eine Umfrage im Unternehmen erhoben und daraus eine modulare Architektur entworfen: Weitere Quellen neben Confluence und Jira lassen sich als eigener Baustein anbinden und werden gleich aufbereitet. Auch Suche und Sprachmodell sind austauschbar.

    • Umfrage im Unternehmen
    • User Stories
    • C4-Modell
    • Modulare Architektur
  2. Umgesetzt

    Alle Teile selbst entwickelt, von der Anbindung an Confluence und Jira über das Zerlegen und Durchsuchen der Texte bis zum Slack-Bot.

    • Datenanbindung
    • Chunking
    • Hybride Suche
    • Slack-Bot
  3. Evaluiert

    Drei Suchverfahren, zusätzliche Metadaten und ein Nachsortieren der Treffer mit 20 Testfragen und RAGAS verglichen. Bei der Antwortkorrektheit lag die Kombination aus Bedeutungs- und Stichwortsuche vorn (0,76 gegenüber 0,68 und 0,62).

    • 20 Testfragen
    • RAGAS
    • Semantische Suche
    • Keyword-Suche
    • Hybride Suche
    • Reranking
Stack
  • Node.js
  • OpenSearch
  • LangChain
  • Google Gemini
  • Python
  • Slack Bolt
  • Docker Compose

Mobile App · 2025 · allein

TripTracker

Eine App für Reisen: interessante Orte in der Nähe finden, sie auf einer Merkliste sammeln und daraus eine Reise Tag für Tag planen.

Umfang
allein umgesetzt
Schwerpunkt
Funktionen und Datenanbindung
TripTracker: Übersicht der Reisen
TripTracker: Merkliste
TripTracker: Startseite Entdecken
TripTracker: Ortsdetails mit Karte und Wetter
TripTracker: Reise mit Orten nach Tagen
Entdecken

Sehenswürdigkeiten in der Nähe, zu jedem Ort Karte, Wetter, Restaurants und Unterkünfte.

Merken

Orte mit einem Herz speichern und später einer Reise hinzufügen.

Planen

Reisen mit Zeitraum anlegen und die Orte auf einzelne Tage verteilen.

Umsetzung: Gebaut mit Angular und Ionic. Anmeldung und Daten laufen über Firebase, Karten über Leaflet. Orte rund um den aktuellen Standort kommen von OpenTripMap, die Ortssuche von Geoapify und das Wetter von WeatherAPI.

Besonderheiten

Datenmodell

Jeder gespeicherte Ort enthält selbst, ob er auf der Merkliste steht und in welchen Reisen er an welchen Tagen geplant ist. So reicht für eine Ansicht ein einziges Dokument, denn Firestore kennt keine Joins.

Zwischenspeicher

Suchergebnisse werden kurz gespeichert, damit nicht jede kleine Standortänderung eine neue Anfrage auslöst.

Stack
  • TypeScript
  • Angular
  • Ionic
  • Capacitor
  • Firebase
  • Leaflet
  • REST-APIs

Backend · 2025 · Teamprojekt

BookBuddy

Ein Backend mit einfacher Weboberfläche zum Tauschen von Büchern: Man legt eine eigene Bibliothek an, sucht Bücher und bietet anderen einen Tausch an.

Umfang
zu zweit umgesetzt
Schwerpunkt
Anmeldung und Zugriffsschutz (mein Teil)

Mein Teil

Anmeldung

Nach dem Login gibt es ein signiertes Token (JWT), gespeichert in einem HttpOnly-Cookie.

Passwörter

Sie werden nicht im Klartext gespeichert, sondern als BCrypt-Hash.

Gastzugang

Gäste können Bücher suchen, aber keine Bibliothek anlegen.

Zugriffsschutz

Ein eigener Filter prüft das Token, bevor geschützte Seiten geladen werden. Dort sieht man nur die eigene Bibliothek.

Von meiner Projektpartnerin stammen Datenmodell, Buchsuche, Tauschfunktion und Tests.

So läuft die Anmeldung ab
  1. LoginE-Mail und Passwort an den Server
  2. Passwort prüfenVergleich mit dem BCrypt-Hash, kein Klartext
  3. Token erzeugenJWT mit Nutzer-ID und Rolle, signiert, 1 h gültig
  4. Cookie setzenHttpOnly, für JavaScript nicht lesbar
  5. Filterprüft das Token bei geschützten Anfragen
  6. RollenNutzer verwalten ihre Bibliothek, Gäste dürfen nur suchen

von mir umgesetzt

Stack
  • Java
  • Quarkus
  • JAX-RS
  • PostgreSQL
  • JPA / Hibernate
  • SmallRye JWT
  • BCrypt

Weitere Projekte

Spieleentwicklung · 2026 · allein

Lava Runner

Ein 3D-Endlosläufer mit drei Spuren, entwickelt in Unity. Die Spiellogik habe ich in C# geschrieben und nach Aufgaben in eigene Skripte gegliedert: Spielfigur, Strecke, Events, Audio und Oberfläche.

  • StreckeAbschnitte zur LaufzeitDie Strecke entsteht während des Spiels aus vorbereiteten Abschnitten (ScriptableObjects).
  • SteuerungSpielfigurSpurwechsel, Springen und Rutschen, Bodenerkennung per Raycast und Rücksetzpunkte nach einem Sturz.
  • GameplayEventsSteigende Lava, fliegende Felsen und eine Aschewolke, gesteuert über einen Zustandsautomaten.
  • GrafikEigene ShaderShader Graph für Felsen und Schild, HLSL für den Himmel.
Stack
  • Unity 6
  • C#
  • ScriptableObjects
  • Shader Graph
  • HLSL
Computergrafik · 2025 · Teamprojekt

ShadowTrail

Ein 3D-Spiel auf einem Pfad im Dunkeln: Lichtkreise machen ihn nur zeitweise sichtbar, wer vom Weg abkommt, fällt herunter.

  • Mein Teil · ShaderLichtkreiseEin eigener Shader lässt die Kreise wachsen und schrumpfen und blendet alles außerhalb aus.
  • Mein Teil · PartikelFunken und ZielringEigenes Partikelsystem für Funken über den Feuern und den Lichtring am Ziel.
  • Mein Teil · PfadZufälliger WegEin Generator erzeugt jede Runde einen neuen Weg vom Start zum Ziel.
Stack
  • C++
  • OpenGL
  • GLSL
  • Dear ImGui
  • miniaudio
Code auf GitHub (Repo von Sid Wannink) ↗
Sudoku-App: 9×9-Spielfeld mit Notizen, markierter Zeile und Spalte, Fehlerzähler und Zahlenfeld
Android-App · 2023 · allein

Sudoku

Eine Sudoku-App für Android. Im Mittelpunkt stand die Architektur: Nach einem Vergleich von MVC, MVP und MVVM habe ich sie nach MVVM aufgebaut, mit Oberfläche, Logik und Daten getrennt.

  • ArchitekturMVVM mit LiveDataDie Activities zeigen nur an. Zustand und Logik liegen im ViewModel, Änderungen kommen über LiveData.
  • DatenRoom und RepositoryEin Repository speichert fertige Spiele und Bestzeiten in einer lokalen Room-Datenbank, in einem eigenen Thread.
  • LogikRätsel-GeneratorEin Backtracking-Löser erzeugt zuerst ein komplett gelöstes Sudoku. Davon sieht der Spieler je nach Schwierigkeit nur einen Teil der Zahlen, jede Eingabe wird mit der Lösung abgeglichen.
  • OberflächeEigene ViewEine selbst geschriebene View zeichnet Gitter, Markierungen und Notizen auf ein Canvas.
Stack
  • Java
  • Android Studio
  • Android SDK
  • Room
  • LiveData
  • Gradle
  • JUnit
Code auf GitHub ↗

Webentwicklung · 2021 · allein

Entenhausen.de

Meine erste Webseite: das Stadtportal einer ausgedachten Stadt mit 13 Unterseiten.

Selbst entwickelt: mitlaufendes Menü, Filter für Veranstaltungen und E-Mail-Prüfung im Newsletter-Formular.

Beim Scrollen läuft die Seite mit, Links und Menü lassen sich anklicken
Stack
  • HTML
  • CSS
  • JavaScript
  • UIkit

Werkzeuge

Womit ich gearbeitet habe

Programmiersprachen

  • Java
  • JavaScript
  • TypeScript
  • Python
  • C#
  • C++
  • SQL
  • HTML und CSS

KI-Anwendungen

  • RAG
  • LangChain
  • Google Gemini
  • Hybride Suche mit OpenSearch
  • Reranking
  • Evaluation mit RAGAS

Web und Mobile

  • Angular
  • Ionic
  • Vue 3
  • Android
  • Leaflet
  • REST-APIs

Backend und Daten

  • Node.js
  • Quarkus
  • FastAPI
  • PostgreSQL mit JPA / Hibernate
  • Firebase
  • Room

Spiele und Grafik

  • Unity
  • OpenGL
  • GLSL
  • Shader Graph und HLSL

Arbeitsweise

  • Git
  • Docker Compose
  • JUnit
  • MVVM
  • Scrum
  • KI-Assistenten (ChatGPT, Claude)