Zum Hauptinhalt springen

5 Posts getaggt mit "feature"

Alle Tags anzeigen

Uni-Verein 1.5.0 – Belegverwaltung mit OCR-Scan und Auswertung 🧾📊

· 3 Minuten Lesezeit
René Herrmann
Senior developer

Veröffentlicht am 14. August 2026

Uni-Verein 1.5.0 bringt eine der größten neuen Funktionen seit dem Start: die Belegverwaltung. Kassenbons und Rechnungen lassen sich ab sofort direkt in Uni-Verein einreichen, per On-Device-OCR automatisch auswerten und in einer neuen Belegauswertung nach Monat, Kategorie und Jahr visualisieren.

Highlights

  • 🧾 Belegverwaltung: Mitglieder reichen Kassenbons oder Rechnungen als Foto oder PDF ein, Admin und Finanzverwalter behalten mit Filtern, Zahlungsstatus und ZIP-Export den Überblick
  • 🤖 On-Device-OCR-Scan: Betrag und Belegdatum werden direkt im Browser aus dem Foto erkannt, ganz ohne Serveranfrage
  • 📊 Belegauswertung: Ausgaben nach Monat und Kategorie als Balken- und Kreisdiagramm, plus Jahresvergleich
  • 💾 Vollbackup mit Belegen: Das Backup kann jetzt optional alle Belegdateien als ZIP enthalten

Neue Funktionen

  • 📎 Belegverwaltung: Neuer Bereich "Belege", in dem reguläre User ihre eigenen, Admin und Finanzverwalter alle eingereichten Belege inklusive einreichender Person sehen. Die Liste lässt sich nach Zeitraum, Kategorie und Status (Offen/Bezahlt) filtern
  • 🤖 OCR-Scan beim Einreichen: Beim Hochladen eines Fotos oder PDFs wird der Beleg direkt im Browser per On-Device-OCR gescannt und füllt Betrag sowie Belegdatum automatisch aus, bereits ausgefüllte Felder werden dabei nicht überschrieben. Händler, Kategorie, Zahlungsart und Beschreibung lassen sich zusätzlich manuell ergänzen, die Zahlungsart können nur Admin und Finanzverwalter setzen
  • 📸 Direkter Kamera-Button: Bei installierter App steht beim Einreichen eines Belegs zusätzlich zum Datei-Upload ein direkter Kamera-Button zur Verfügung
  • Als bezahlt markieren: Admin und Finanzverwalter bestätigen Belege als bezahlt, danach nicht mehr rückgängig zu machen. Reguläre User können einen eigenen, noch offenen Beleg nur innerhalb von 15 Minuten nach dem Einreichen selbst bearbeiten oder löschen
  • 🗑️ Löschen & Wiederherstellen: Gelöschte Belege werden zunächst nur soft-deleted (Papierkorb-Prinzip). Admin kann sie in der Liste einblenden, wiederherstellen oder endgültig inklusive aller angehängten Dateien löschen
  • 📤 Export als ZIP: Admin und Finanzverwalter können die aktuell gefilterte Belegliste als ZIP mit CSV-Übersicht und allen angehängten Dateien exportieren
  • 📊 Belegauswertung: Neuer Auswertungsbereich für Admin und Finanzverwalter mit Balkendiagramm der Ausgaben je Monat (gestapelt nach Kategorie), Kreisdiagramm je Kategorie mit Jahresgesamtsumme und einer Übersicht der Gesamtausgaben im Jahresvergleich
  • 🏷️ Belegkategorien verwalten: Neue Einstellung, um eigene Kategorien wie Büromaterial, Reisekosten oder Verpflegung anzulegen, eine Kategorie lässt sich erst löschen, wenn ihr kein Beleg mehr zugeordnet ist

Verbesserungen

  • 💾 Backup mit Belegen: Neben dem normalen Datenbank-Backup steht jetzt ein Vollbackup inklusive aller hochgeladenen Belegdateien als ZIP zum Download bereit. Beim Wiedereinspielen erkennt Uni-Verein automatisch, ob eine reine SQL-Datei oder ein ZIP-Vollbackup ausgewählt wurde, beide lassen sich über "Backup-Datei auswählen" einspielen

Warum diese Updates wichtig sind

Die Beleg- und Spesenverwaltung war eines der meistgewünschten Features aus der Vereinsarbeit: Statt Kassenbons zu sammeln und manuell in einer Tabelle zu erfassen, reichen Mitglieder sie jetzt direkt in Uni-Verein ein, der OCR-Scan übernimmt dabei einen Großteil der Tipparbeit. Für Vorstand und Finanzverwaltung schafft die neue Belegauswertung sofortige Transparenz über Ausgaben, ganz ohne separate Tabellenkalkulation.

Wie geht es weiter?

Die Belegverwaltung ist ein erster Schritt in Richtung umfassenderer Finanzfunktionen, weiteres Feedback aus der Praxis ist wie immer herzlich willkommen, gerne über GitHub Issues. Schaut auch weiterhin gerne hier vorbei!

Uni-Verein 1.4.0 – Dark Mode und Umstieg auf PostgreSQL 🌓🐘

· 3 Minuten Lesezeit
René Herrmann
Senior developer

Veröffentlicht am 28. Juli 2026

Uni-Verein 1.4.0 ist da! Mit einem lang gewünschten Dark Mode und einer größeren technischen Umstellung unter der Haube: Die Datenbank wechselt von MariaDB zu PostgreSQL. Bestehende Installationen werden dabei automatisch und sicher vom Updater migriert.

Highlights

  • 🌓 Dark Mode: Die App folgt jetzt standardmäßig dem Farbschema von Betriebssystem/Browser, mit einem manuellen Umschalter neben dem Sprachumschalter
  • 🐘 PostgreSQL statt MariaDB: Die Datenbank-Engine wurde umgestellt. Bestehende Installationen werden vom Updater automatisch und sicher migriert (siehe Wichtiger Hinweis zum Upgrade unten)

⚠️ Wichtiger Hinweis zum Upgrade (Breaking Change)

Dieses Release wechselt die Datenbank-Engine von MariaDB zu PostgreSQL. Aktualisiert deshalb ausschließlich über den offiziellen Updater und setzt niemals VERSION in der .env von Hand oder tauscht selbstständig eine neuere docker-compose-prod-image.yml ein, das überspringt die notwendige Datenbankmigration und beschädigt eure Installation!

curl -O https://raw.githubusercontent.com/uni-verein/uni-verein/main/docker-compose-update.yml
docker compose -f docker-compose-update.yml run --rm update
  • Erstellt vor dem Fortfahren ein manuelles Backup (Datenbank-Backup und Mitgliederexport, beides unter Backup) der Updater fragt vor der Migration explizit danach, ob dies erledigt wurde
  • Installationen, die noch auf MariaDB laufen, werden zunächst auf v1.3.1 aktualisiert, falls sie das nicht schon sind. Ab v1.3.1 migriert der nächste Update-Lauf die Datenbank nach PostgreSQL und stellt den gesamten Stack um. Das bringt eine Ausfallzeit mit sich, die proportional zur Datenbankgröße ist
  • Sicherheitsnetz bei der Migration: Die Umstellung läuft gegen eine isolierte, temporäre PostgreSQL-Instanz, während der laufende MariaDB-Container weiterhin bedient, es wird also erst etwas verändert, nachdem die Kopie verifiziert wurde. Bei Erfolg wird der alte MariaDB-Container gestoppt, sein Datenvolume aber nicht gelöscht (späteres Freigeben mit docker volume rm <project>_db_data, sobald alles bestätigt funktioniert). Bei einem Fehlschlag wird die Migration automatisch bereinigt und die MariaDB-Installation bleibt vollständig unangetastet
  • Kommt ihr von einer älteren Version? Der Updater geht pro Lauf nur einen Schritt weiter (< v1.3.1v1.3.1v1.4.0 → aktuellste Version). Wer von vor v1.3.1 aktualisiert, führt den obigen Befehl einfach mehrfach hintereinander aus, bis "Already up to date" gemeldet wird

Neue Funktionen

  • 🌓 Dark Mode: folgt standardmäßig prefers-color-scheme oder lässt sich manuell über einen Umschalter neben dem Sprachumschalter setzen, die Wahl wird über Reloads hinweg gespeichert. Jede bisher nur helle Oberfläche (Hauptbereich, Tabellenköpfe, Backup-/E-Mail-/Sendefortschritt-Panels, Kopfleiste, Login-Seite) ist jetzt theme-fähig
  • 🛠️ UniVerein.DbMigrator: ein neues Tool, das die oben beschriebene MariaDB-zu-PostgreSQL-Migration durchführt, kopiert jede Tabelle (inklusive soft-gelöschter Zeilen) in fremdschlüsselsicherer Reihenfolge und verifiziert die Zeilenanzahlen

Verbesserungen

  • 🐘 MariaDB wurde im gesamten Stack durch PostgreSQL (postgres:17-alpine) ersetzt: Docker-Images, der Datenbank-Provider im Backend sowie das Backup-/Restore-Tooling
  • 🔄 Der Updater (docker-compose-update.yml) wurde so angepasst das er die oben beschriebene MariaDB-zu-PostgreSQL-Umstellung automatisch durchführt

Fehlerbehebungen

  • 🐛 Der Login-Dialog für den Demo-Modus konnte fälschlicherweise auch dann erscheinen, wenn die App gar nicht als Demo-Instanz konfiguriert war

Warum diese Updates wichtig sind

Der Dark Mode war eine der meistgefragten Komfortfunktionen, gerade bei abendlichen Vorstandssitzungen ein spürbarer Unterschied. Der Wechsel zu PostgreSQL ist dagegen eine strategische Entscheidung: PostgreSQL bietet eine robustere Grundlage für zukünftige Funktionen und bessere Datenintegrität. Da ein Datenbankwechsel für bestehende Installationen naturgemäß heikel ist, wurde besonderer Wert auf eine sichere, automatisierte Migration mit Rückfallebene gelegt.

Wie geht es weiter?

Bitte plant für das Update ein kurzes Wartungsfenster ein und meldet euch bei Problemen während der Migration gerne über GitHub Issues. Vielen Dank an alle, die dieses Release mit Feedback begleitet haben. Schaut auch weiterhin gerne hier vorbei!

Uni-Verein 1.3.0 – Namenssuche im Rundmail-Versand und stabilere Infrastruktur 🔍

· 2 Minuten Lesezeit
René Herrmann
Senior developer

Veröffentlicht am 25. Juli 2026

Uni-Verein 1.3.0 bringt eine praktische neue Suchfunktion für den Rundmail-Versand sowie eine ganze Reihe an Verbesserungen unter der Haube, die die Zuverlässigkeit von Deployments und CI-Läufen erhöhen.

Neue Funktionen

  • 🔍 Namenssuche im Empfänger-Tab der Rundmail: Empfänger lassen sich jetzt zusätzlich zum bestehenden Filter nach Mitgliedskategorie auch nach Vor- oder Nachnamen filtern (unscharfe Suche mittels Jaro-Winkler-Ähnlichkeit)

Verbesserungen

  • ❤️ /health-Endpoint: Ein neuer, unauthentifizierter GET /health-Endpoint sowie Docker-HEALTHCHECKs für Backend und Frontend
  • 🩺 backend, frontend und proxy verfügen jetzt über richtige Health-Checks (zuvor nur die Datenbank), und jeder Dienst wartet in allen docker-compose*.yml-Dateien darauf, dass seine Abhängigkeiten tatsächlich bereit sind (service_healthy) statt nur gestartet
  • 🚦 Die CI bricht jetzt sofort mit angehängten Container-Logs ab, wenn der Stack nicht rechtzeitig gesund wird, statt stillschweigend fortzufahren und erst bei den Playwright-Tests ohne Diagnoseinformationen zu scheitern
  • ⏱️ Der Retry-timeout des Datenbank-Health-Checks wurde erhöht, um gelegentlich langsame Erstinitialisierungen auf CI-Runnern zu tolerieren
  • 📝 .env.example listet jetzt auch BACKUP_PATH, passend zu allen Werten, die docker-compose-ini.yml erzeugt
  • 🔒 Die CI erzwingt jetzt, dass Pull Requests nach main nur noch von development ausgehen dürfen (neuer enforce-source-branch-Job)

Fehlerbehebungen

  • 🐛 Das Kategorie-Dropdown im Rundmail-Empfänger-Filter zeigte für individuelle (nicht standardmäßige) Mitgliedskategorien den rohen Übersetzungsschlüssel statt des Kategorienamens an
  • 🐛 Der proxy-Container konnte unbegrenzt "unhealthy" bleiben, weil sein Health-Check localhost per IPv6 auflöste, während nginx.conf nur auf IPv4 lauscht
  • 🐛 Der Docker-Image-Build des Backends schlug gelegentlich wegen kurzzeitiger Fehler des Paket-Mirrors bei apt-get install fehl

Sicherheit

  • 🔐 sharp wurde per npm-overrides auf ^0.35.3 fixiert, um statt der verwundbaren transitiven Version eine gefixte Version zu beziehen

Warum diese Updates wichtig sind

Die Namenssuche im Rundmail-Versand spart bei größeren Vereinen viel Zeit, wenn schnell einzelne Empfänger gefunden werden müssen. Mindestens genauso wichtig sind die Verbesserungen an den Health-Checks: Sie sorgen dafür, dass Deployments zuverlässiger anlaufen und Probleme in der CI sofort mit aussagekräftigen Logs sichtbar werden, statt erst spät und ohne Kontext aufzufallen.

Wie geht es weiter?

Die Arbeit an Performance und Infrastruktur geht weiter, im nächsten Release liegt der Fokus bereits auf spürbar schnelleren Ladezeiten.

Uni-Verein 1.2.0 – Progressive Web App und mobile Ansicht 📱

· 2 Minuten Lesezeit
René Herrmann
Senior developer

Veröffentlicht am 22. Juli 2026

Mit Uni-Verein 1.2.0 löst sich eine der größten Baustellen aus den Anfängen des Projekts: Die Software war bisher für PC und Tablet optimiert, ab sofort funktioniert Uni-Verein auch auf dem Smartphone und lässt sich ebenfalls wie eine App installieren.

Neue Funktionen

  • 📲 Progressive Web App (PWA): Uni-Verein lässt sich jetzt auf dem Homescreen installieren
  • 📱 Mobile-optimiertes Layout: Auf Smartphones ersetzt ein Hamburger-Menü mit Bottom-Navigation die Desktop-Sidebar, Tabellen werden als Karten bzw. einspaltige Ansicht dargestellt, Dialoge öffnen im Vollbild und Filterleisten stapeln sich vertikal
  • 📡 Offline-Hinweis auf der Login-Seite: Zeigt "Du bist offline" an, sobald keine Verbindung besteht oder der Server nicht erreichbar ist, und verschwindet automatisch wieder bei erneuten verbindung.

Verbesserungen

  • 🧩 Größere Refactorings im Frontend: Mobile-spezifische Ansichten (Audit-Log, Mitgliederliste) und die Sidebar-Navigation wurden in eigene, wiederverwendbare Komponenten ausgelagert
  • 🗂️ Die Erstellen-/Bearbeiten-Dialoge (Beitragspläne, Nutzer, Mitgliedskategorien, Links, Import-Fehler, Bestätigungen, Icon-Auswahl, Mitgliederformular) wurden in eigenständige Komponenten unter src/components/dialogs verschoben
  • 📄 Eine gemeinsame ResponsiveTablePagination-Komponente wird jetzt von allen paginierten Tabellen (Mitglieder, Mail-Empfänger, SEPA, Beiträge, Audit) verwendet
  • ✨ Einheitliche Prettier-Formatierung im gesamten Frontend-Code
  • ⚙️ Der Workflow zur Aktualisierung der Third-Party-Hinweise läuft jetzt auf Feature-Branches statt auf main
  • 🐳 docker-compose-ini.yml liest die aktuelle Version jetzt automatisch vom neuesten GitHub-Release aus, statt sie manuell im .env pflegen zu müssen

Fehlerbehebungen

  • 🐛 Der Sprachumschalter musste beim ersten Klick manchmal zweimal betätigt werden, bevor die Sprache tatsächlich wechselte
  • 🐛 Das Init-Skript (docker-compose-ini.yml) hinterließ doppelte VERSION-Zeilen im .env, weil sed -i gegen den Single-File-Bind-Mount stillschweigend fehlschlug

Warum diese Updates wichtig sind

Die mobile Ansicht war eine der meistgewünschten Funktionen seit dem ersten Release und macht Uni-Verein jetzt auch für die Vorstandsarbeit unterwegs praktikabel, ob beim Check-in auf einer Veranstaltung oder für einen schnellen Blick in die Mitgliederliste zwischen zwei Vorlesungen. Durch die PWA-Unterstützung fühlt sich die Web-App dabei fast wie eine native App an, inklusive Offline-Zugriff auf bereits geladene Daten.

Wie geht es weiter?

Damit ist ein wichtiger Meilenstein von der ursprünglichen Roadmap erreicht. Als Nächstes stehen weitere Performance- und Infrastruktur-Verbesserungen an. Schaut auch in Zukunft gerne wieder hier vorbei.

Uni-Verein 1.1.0 – Automatische Update-Prüfung und wichtige Fehlerbehebungen 🔔

· 2 Minuten Lesezeit
René Herrmann
Senior developer

Veröffentlicht am 16. Juli 2026

Mit Uni-Verein 1.1.0 ist das erste größere Feature-Update seit dem Release erschienen. Im Fokus stehen dieses Mal eine automatische Update-Benachrichtigung sowie einige wichtige Fehlerbehebungen im Alltag der Mitgliederverwaltung.

Neue Funktionen

  • 🔔 Automatische Update-Prüfung: Uni-Verein vergleicht ab sofort automatisch die installierte Version mit dem neuesten GitHub-Release
  • 📧 E-Mail-Benachrichtigung für Admins: Sobald eine neue Version verfügbar ist, werden Administratoren automatisch per E-Mail informiert
  • 🔔 Benachrichtigungsglocke im Frontend: Ein neues Glocken-Symbol im Frontend zeigt auf einen Blick an, ob ein Update verfügbar ist

Verbesserungen

  • 🗂️ Das Backend-Verzeichnis Data wurde in Models umbenannt, um die Projektstruktur übersichtlicher zu gestalten
  • ⚙️ Anpassungen an der CI-Konfiguration

Fehlerbehebungen

  • 🐛 Ein Fehler wurde behoben, durch den neue Mitglieder teilweise doppelte Mitgliedsnummern erhalten haben

Warum diese Updates wichtig sind

Die automatische Update-Prüfung sorgt dafür, dass Vereine immer informiert sind, sobald eine neue Version von Uni-Verein verfügbar ist (ganz ohne manuell auf GitHub nachschauen zu müssen). In Kombination mit den behobenen Fehlern rund um die Mitgliedsnummern-Vergabe wird die tägliche Arbeit mit Uni-Verein noch zuverlässiger.

Wie geht es weiter?

Vielen Dank an alle, die mit Feedback und Bug-Reports zu diesem Release beigetragen haben! Die Arbeit an neuen Funktionen wie Mobile support und Event-Kalender läuft weiter, schaut auch in Zukunft gerne wieder hier vorbei.