Scenerii: Codequalität, Sicherheit und Betrieb für digitale Bürgerbeteiligung


Kunde: Scenerii, Ausgründung der TU Dresden
Laufzeit: 2025
Schwerpunkte: Code-Review, Sicherheit, Lasttests, Backups und Monitoring
Ausgangslage
Scenerii macht Bürgerbeteiligung für Kommunen und Planungsbüros einfacher: Bürgerinnen und Bürger erkunden geplante Vorhaben in einem 3D-Stadtmodell und geben direkt dort Rückmeldung, eine KI hilft bei der Auswertung. Die Anwendung lief bereits mit FastAPI, Vue.js und PostgreSQL. Ziel war nicht, neue Funktionen zu bauen, sondern die bestehende Codebasis nachhaltig zu verbessern: Architektur, Sicherheit, Performance und Betrieb.
Lösung
Wir haben die Anwendung zuerst analysiert und dann gezielt nachgebessert, in klar abgegrenzten Arbeitspaketen:
- Code-Architektur und Qualität: Analyse der Schichten (Controller, Service, Repository), Vorschläge zum Refactoring, Regeln für Architektur-Muster in Backend und Frontend, Dokumentation, Linting und SonarQube für automatische Qualitätschecks
- Sicherheit: Nutzer- und Rollenarchitektur geprüft, etwa was anonyme Nutzer dürfen, Zugriffe auf die Produktionsdatenbank eingeschränkt, alte Zugänge entfernt, Berechtigungsprüfungen im Code bewertet
- Performance: Lasttests mit k6 in verschiedenen Szenarien, Auswertung in Grafana, Engpässe in Frontend und Backend benannt, Vorschläge wie Caching und Abfrage-Optimierung
- Backups und Notfallwiederherstellung: automatisierte nächtliche Backups mit Aufbewahrungsfristen auf einer eigenen Nextcloud (Hetzner Storage Share), Wiederherstellungspläne geprüft und verbessert
- Tests und Monitoring: End-to-End-Tests mit Cypress in der Pipeline, Server-Metriken mit Telegraf und InfluxDB für Stage und Produktion, Grafana-Dashboards mit Alarmierung
Das ist genau der Blick, den wir heute als Software-Check anbieten: erst verstehen, wo eine Anwendung steht, dann in sinnvoller Reihenfolge verbessern.
Docker
Cypress