Zurück zur Information

Änderungsprotokoll

Alle nennenswerten Änderungen an sMKM. Format nach Keep a Changelog, Versionierung nach SemVer.

[Unveröffentlicht]

[0.0.1] – 2026-10-05

Hinzugefügt

Abrechnung

  • Kontrollübersichten unter „Abrechnung“ (#25)
    • Gesamtübersicht je Monat: Tarifbetrag, Ermäßigung und Endbetrag je Zahlungspflichtigem, mit Summenzeile
    • Filter nach Sprengel, Kategorie und Zahlungsart; Blättern zwischen den Monaten
    • Einzelübersicht je Zahlungspflichtigem mit Rang, Anteil, Tarif und Beträgen je Fach, auch von seiner Seite aus
    • Beide Übersichten als Excel mit den Blättern „Zahlungspflichtige“ und „Positionen“
    • Zahlungspflichtige mit einem Fach ohne gültigen Tarif sind als nicht berechenbar markiert und fehlen in den Summen
    • Vermietungen folgen mit der Mietberechnung, die Kontrolllisten mit #87
  • Kontrollübersichten auch als PDF zum Ablegen und Ausdrucken (#88)
    • Mit Monat, gewählten Filtern und Erstellungszeitpunkt; ohne Bankdaten
    • Kein Dokument für Eltern: Vorschreibung und Zahlung laufen weiter über K5
  • Ermäßigung je Zahlungspflichtigem und Monat (#15)
    • Alle Fächer aller seiner Schüler werden nach Tarifbetrag gereiht: 1. Fach 100 %, 2. Fach 90 %, ab dem 3. Fach 80 %
    • Bei gleichem Betrag entscheidet die Reihenfolge der Ersteinspielung
    • Gilt auch für den Sprengelfremd-Tarif; kostenfreie Fächer zählen nicht mit
    • Ermäßigte Beträge werden kaufmännisch auf Cent gerundet
  • Monatsberechnung: Ein Fach zählt in jedem Monat voll, in dem es mindestens einen Tag Unterricht hat (#14)
    • Beispiel: 01.09.2026 bis 10.02.2027 ergibt sechs Monate
    • Abgemeldete Fächer ohne Unterrichtszeitraum werden nicht verrechnet
  • Tarifermittlung je Fach und Monat über den Tarifcode aus ARTus (#13)
    • Erwachsenentarif ab dem vollendeten 24. Lebensjahr zum Stichtag 1.9., unabhängig vom Sprengel
    • Sonst Tarif für sprengeleigene oder sprengelfremde Schüler
    • Ergänzungsfächer ohne Tarifcode sind kostenfrei
    • Ohne passenden Tarif ist das Fach „nicht zuordenbar“, mit Begründung
  • Fächer ohne gültigen Tarif sperren die Abrechnung, nicht den Import (#22)
    • Die Importvorschau listet sie mit Schüler, Fach, Tarifcode, Grund und erstem betroffenem Monat
    • Die Übersicht zeigt „Abrechnung frei“ oder „Abrechnung gesperrt“ mit allen betroffenen Fächern
    • Geprüft wird das laufende Schuljahr (September bis August)

Import

  • ARTus-Exporte hochladen und archivieren unter „Importe“ (#17)
    • XLS und XLSX; die Originaldatei bleibt unverändert im Archiv und kann wieder heruntergeladen werden
    • Nicht lesbare Dateien werden gleich beim Hochladen abgelehnt
  • Einlesen des Exports „Schüler/Unterricht/Schulgeld“ (#18)
    • Spalten werden über ihre Überschrift gefunden; Leer- und Fußzeilen werden übersprungen
    • Gleiche Zeilen werden zusammengelegt, z. B. ein Fach mit zwei Lehrkräften
    • Auffälligkeiten erscheinen als Hinweise in der Vorschau
  • Vorschau vor der Übernahme (#19)
    • Nach dem Hochladen geht es direkt zur Vorschau mit neuen, geänderten und unveränderten Datensätzen
    • Manuell geänderte Felder werden nicht überschrieben, sondern als Konflikt gezeigt
    • Gesamtimport zeigt zusätzlich, was im Export fehlt; gelöscht wird nichts
    • Gleichnamige Zahlungspflichtige lassen sich zusammenführen
    • Erst „Übernehmen“ ändert den Bestand; „Verwerfen“ schließt den Import ohne Änderung ab
    • Fächer ohne Unterrichtszeitraum werden als abgemeldet übernommen
    • Unbekannte Zahlungsmodalitäten werden leer übernommen; Referenznummern dürfen bis 250 Zeichen lang sein

Stammdaten und Suche

  • Listen und Detailseiten für Schüler, Zahlungspflichtige, Fächer und Referenznummern (#11)
    • Sortieren, Blättern, Bearbeiten mit Prüfung der Eingaben
    • Von Hand geänderte Felder sind als „manuell geändert“ markiert
  • Der Zahlungspflichtige gehört zum Fach, nicht zum Schüler – wie in ARTus (#60)
    • Ein Schüler kann so für verschiedene Fächer verschiedene Zahlungspflichtige haben
  • Kennzahlen und aufklappbare Details in Listen und Suche (#82)
    • Schüler mit aktiven und nicht aktiven Fächern, Zahlungspflichtige mit Anzahl Schüler und Fächer
    • Ein Klick auf ▸ zeigt Sprengel und Fächer bzw. die Schüler eines Zahlungspflichtigen
  • Änderungsprotokoll je Datensatz mit altem und neuem Wert, Quelle, Benutzer und Zeitpunkt (#10)
  • Bankdaten geschützt (#26)
    • Die IBAN erscheint maskiert, z. B. AT61 **** **** 3201
    • „Bankdaten anzeigen“ deckt sie zum Bearbeiten auf; das wird protokolliert
  • Suche nach Schülern, Zahlungspflichtigen und Referenznummern über das Suchfeld in der Navigation (#24)
    • Findet auch Wortanfänge; Müller, Mueller und Muller gelten als gleich
    • Bankdaten werden nicht durchsucht
  • Sprengelpflege unter „Sprengel“ (#65)
    • Umbenennen, als sprengelfremd kennzeichnen, zusammenlegen und leere Sprengel löschen
    • Der Import erkennt alle bisherigen Schreibweisen eines Sprengels wieder
  • Sprengelliste je Sprengel als PDF und Excel (#27)
    • Schüler mit Unterricht am gewählten Stichtag, mit Name, Schülerkennzahl, Adresse und Geburtsdatum
    • Ohne Fächer, Tarife und Bankdaten
  • Die Dauer eines Fachs kann eine Nachkommastelle haben, z. B. 12,5 Minuten (#18)

Tarife

  • Tarifverwaltung unter „Mehr“ → „Tarife“ (#12)
    • Preise je Tarifgruppe gelten ab einem Datum bis zum nächsten Preisstand
    • Tarifanpassung für alle Tarife auf einer Seite; künftige Preisstände lassen sich korrigieren und löschen
    • Vorbelegt mit den Elternbeiträgen ab 01.09.2026

Oberfläche und Anmeldung

  • Gestaltung nach dem MiNK-Styleguide, alles lokal ausgeliefert, ohne fremde Server (#35)
  • Logo der Musikschule Mostviertel im Kopf, MiNK-Logo in der Fußzeile (#93)
    • Angemeldet führt ein Klick auf das Logo zur Übersicht
  • Hauptnavigation mit Untermenü „Mehr“ für Referenznummern, Tarife, Benutzer und Information (#80)
  • Datums-, Monats- und Dateifelder sehen aus wie die übrigen Eingabefelder (#57)
  • Anmeldung und Benutzerverwaltung mit den Rollen Admin und Benutzer (#6)
    • Neue und zurückgesetzte Benutzer müssen beim ersten Anmelden ihr Passwort ändern
    • Admins legen Benutzer an, sperren und entsperren sie und setzen Passwörter zurück
  • Informationsseite mit Versionsnummer und diesen Versionshinweisen (#7)
  • Versionshinweise übersichtlich: kurze Einträge mit Unterpunkten, nach Themen gruppiert, mit Aufzählungszeichen (#94)
  • Anmeldungen bleiben bei einem Neustart der Anwendung erhalten (#73)

Betrieb

  • Auslieferung als Docker-Image; prod und test laufen parallel auf einer Maschine (#29)
  • Release-Workflow in Gitea: Version eingeben, testen, Image bauen, Tag und Release anlegen (#29)
    • Die Version steht nur im Git-Tag, nicht in der pom.xml
    • Probeversionen wie 0.0.0-test.1 lassen das Image latest unverändert (#90)
  • Ausrollen mit just deploy <instanz> <version> auf der Zielmaschine, Anleitung in deploy/DEPLOY.md (#30)
    • Ports 8090 (prod) und 8091 (test)
  • Veröffentlichung über Traefik mit HTTPS: just traefik (#31)
  • Konfiguration für den Betrieb (#7, #17, #73)
    • SMKM_ARCHIV_VERZEICHNIS: Ablage der hochgeladenen Exporte, in Prod Pflicht
    • SMKM_SITZUNGSSCHLUESSEL: fester Schlüssel für Anmeldungen, mindestens 32 Zeichen, in Prod Pflicht
    • SMKM_VERTRAUTE_PROXYS: Proxys, deren X-Forwarded-Header gelten (Standard 127.0.0.1)
    • Health-Endpunkte unter /q/health ohne Anmeldung

Entwicklung

  • Projektgerüst mit Quarkus 3.40, Java 25, Maven-Wrapper und Spotless (#3)
  • Lokale PostgreSQL per Docker Compose unter entwicklung/ (#3)
  • Gitea-Workflow „Prüfung“ mit Build, Tests und Formatprüfung bei jedem Pull-Request (#4)
  • Komponentenseite /entwicklung/komponenten als Vorlage für neue Seiten, nur außerhalb von Prod (#5)
  • Erfundene Beispieldaten im Entwicklungsmodus (#51)

Lastenheft und Backlog

  • Abgleich mit dem ARTus-Export: Zahlungspflichtiger je Fach, Tarif über den ARTus-Tarifcode (#18, #55)
  • Tarife mit Preisständen ab einem Datum (#12)
  • Antworten der Musikschule eingearbeitet; Fächer ohne Tarif sperren die Abrechnung statt den Import (#77)
  • Sprengelpflege (A-SPR-03); „Auswärtig“ = 1 bedeutet sprengelfremd (#65)
  • Sprengelliste mit Stichtag und ARTus-Schülerkennzahl (#27)
  • Prüfzeitraum für Fächer ohne Tarif, Rundung der Ermäßigung, nicht berechenbare Zahlungspflichtige (#15, #22, #25)
  • Kontrollübersichten aufgeteilt: Kontrolllisten als B-34 (#87) (#25)
  • PDF der Kontrollübersichten (A-UEB-04, B-35) (#88)

Behoben

  • Entwicklungsmodus: Der Start brach nicht mehr mit „Dateiname ist zu lang“ ab (#10)