Ä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
- Die IBAN erscheint maskiert, z. B.
- 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.1lassen das Imagelatestunverändert (#90)
- Die Version steht nur im Git-Tag, nicht in der
- Ausrollen mit
just deploy <instanz> <version>auf der Zielmaschine, Anleitung indeploy/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 PflichtSMKM_SITZUNGSSCHLUESSEL: fester Schlüssel für Anmeldungen, mindestens 32 Zeichen, in Prod PflichtSMKM_VERTRAUTE_PROXYS: Proxys, derenX-Forwarded-Header gelten (Standard127.0.0.1)- Health-Endpunkte unter
/q/healthohne 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/komponentenals 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)
