← Alle Projekte

Plattform für strukturiertes Komfort-Feedback

Ein Software-Engineering-Projekt an der Hochschule mit einem realen gebäudetechnischen Anwendungsfall: eine wartbare Flask-Anwendung zum Erfassen und Verwalten von strukturiertem Nutzerfeedback.

  • Python
  • Flask
  • PostgreSQL
  • Docker
  • GitLab CI/CD
  • SQLAlchemy
  • Alembic
  • REST integration
  • Jinja2
  • Flask-WTF
  • Docker Compose
  • pytest
  • pytest-cov
  • Playwright

Überblick

Ein Software-Engineering-Projekt an der Hochschule, entwickelt rund um einen realen gebäudetechnischen Anwendungsfall: strukturiertes Feedback von den Menschen einzuholen, die einen Raum tatsächlich nutzen, über eine Webanwendung, die wartbar genug ist, um danach weiterzulaufen.

Die Lehrveranstaltung verlangte eine umfangreiche Flask-Anwendung. Interessant war, sie wie Software für den Produktivbetrieb zu behandeln statt wie eine Studienarbeit; genau deshalb gibt es die unten beschriebenen Engineering-Praktiken überhaupt.

Architektur

Backend (Flask + PostgreSQL)

  • Application-Factory-Struktur mit Blueprints und Jinja2-Templates
  • SQLAlchemy-Modelle; PostgreSQL im Betrieb, SQLite in den Tests
  • Rollenbasierte Zugriffskontrolle über View-Decorators
  • Administrative Abläufe mit vollständigem CRUD und CSV-Export
  • Ablauf für E-Mail-Einladungen und -Erinnerungen
  • REST-artige Anbindung an eine externe Datenquelle, dazu ein Simulator, damit das System isoliert entwickelt und getestet werden konnte

Frontend

  • Serverseitig gerenderte Ansichten mit Plotly.js-Diagrammen
  • Eine eigene Internationalisierungsschicht für Englisch und Deutsch
  • Responsives Layout für Desktop und Mobilgeräte

Sicherheit

Bewusst gehärtet, nicht nur durch Voreinstellungen:

  • CSRF-Schutz für alle POST-Formulare
  • Rate Limiting bei der Authentifizierung und global
  • Gesalzenes Passwort-Hashing
  • Cookie-Flags HttpOnly und SameSite, dazu Security-Header
  • Durchgehend parametrisierte Abfragen

Tests und Auslieferung

Tests auf Unit-, Integrations- und End-to-End-Ebene mit pytest, pytest-cov und Playwright. Mit Docker Compose containerisiert und über GitLab CI/CD ausgeliefert.

Was ich daraus mitnehme

Verantwortung für die gesamte Spannweite einer Webanwendung: Backend-Entwicklung, Datenhaltung, administrative Abläufe, sicherheitsbewusste Umsetzung, automatisierte Tests auf drei Ebenen und die Werkzeuge, um alles auszuliefern.