- Dart 89.6%
- C++ 4.9%
- CMake 3.7%
- Ruby 0.5%
- Swift 0.5%
- Other 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| android | ||
| assets/icon | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| platformbuilds | ||
| templates | ||
| test | ||
| web | ||
| windows | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| LICENSE | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
SV-Helfer
Verwaltungssoftware für die Schülervertretung des Clara-Schumann-Gymnasiums Holzwickede.
SV-Helfer unterstützt alle zentralen Aufgaben einer SV digital: von der Schülerverwaltung über Antragsbearbeitung, Kassenverwaltung und Wahlen bis hin zur Durchführung digitaler Live-Abstimmungen mit automatischer Auswertung. Alle Daten bleiben lokal auf dem Gerät – keine Cloud, keine externe Anmeldung.
Inhaltsverzeichnis
Übersicht
| Bereich | Wofür |
|---|---|
| Verwaltung | SV-Mitglieder pflegen, importieren und exportieren |
| Anträge | Anträge erfassen, Dokumente anhängen, Abstimmungszettel drucken |
| Wahlen | Kandidaten verwalten, Ergebnisse auswerten, live digital abstimmen |
| Anwesenheit | Anwesenheitslisten für Sitzungen erstellen |
| Kasse | Einnahmen und Ausgaben verwalten, verifizieren, Saldo bilden |
| Einstellungen | Schuljahr, Ämter, Antragstypen, Kassen-Kategorien, Benutzer anpassen |
Anmeldung und Rollen
Beim ersten Start wird ein Administrator-Konto angelegt und ein Wiederherstellungscode angezeigt – notiere ihn, er wird nur einmal angezeigt und ermöglicht das Zurücksetzen des Admin-Passworts.
Danach können mehrere Benutzer mit unterschiedlichen Rollen eingerichtet werden. Jeder Benutzer kann sein eigenes Passwort jederzeit ändern. Welche Tabs und Aktionen sichtbar sind, hängt von der Rolle ab – Unerlaubtes wird konsequent ausgeblendet.
| Rolle | Berechtigungen |
|---|---|
| Administrator | Volle Konfiguration. Einzige Rolle, die den Datenspeicherort ändert, Benutzer verwaltet und Backups importiert. |
| Co-Schülersprecher:in | Umfasst Co-SSp und Co-SVR-V. Alle SV-Einstellungen, alle Daten CRUD, CSV im/export, Backups exportieren. |
| SVR-Mitglied | Umfasst MdSVR, MdBDK, deren Stellvertretungen und SV-Lehrer:in. Sitzungen leiten (Wahlen, Anträge, Anwesenheit), Kasse einsehen. |
| Kassenwart:in | Voller Kasse-Zugriff: Einträge anlegen, bearbeiten und Kassen-Kategorien verwalten. |
| Kassenprüfer:in | Wie Kassenwart:in, darf zusätzlich Einträge als verifiziert markieren und löschen – als einzige Rolle. |
Der Administrator vergibt im Einstellungen-Tab unter „Benutzer verwalten" neue Konten, ändert Rollen, setzt Passwörter zurück und erzeugt einen neuen Wiederherstellungscode.
Funktionsbereiche
1. Verwaltung – Schüler:innen
Das zentrale Verzeichnis aller SV-Mitglieder.
- Mitglieder anlegen, bearbeiten und löschen
- Pro Mitglied werden erfasst: Vorname, Nachname, Geburtsdatum, Klasse und ein oder mehrere Ämter (z. B. Klassensprecher:in, Stufensprecher:in, Mitglied des SV-Rates)
- Suche nach Name oder Klasse – die Liste wird sofort gefiltert
- Einträge lassen sich nach jeder Spalte auf- und absteigend sortieren
- Das jeweils höchste Amt einer Person wird automatisch anhand der konfigurierten Ämter-Hierarchie angezeigt
- Optional: Spalte „SVVV-Sitzungen" zeigt, an wie vielen SVVV-Sitzungen die jeweilige Person teilgenommen hat (in den Einstellungen deaktivierbar)
2. Anträge
Vollständige Erfassung und Nachverfolgung von SV-Anträgen.
Anträge verwalten
- Anträge anlegen, bearbeiten und löschen
- Jeder Antrag erhält automatisch eine fortlaufende Nummer pro Schuljahr (z. B.
2026/27-0001) - Erfasst werden: Titel, Antragsteller:in, Klasse, Typ und Status
- Status eines Antrags: Offen · Angenommen · Abgelehnt · Vertagt
- Direkt aus der Liste per Klick änderbar
- Auch im Bearbeitungsdialog änderbar
- Anträge lassen sich nach Status filtern
Dokumente anhängen
- Beliebig viele Dateien an einen Antrag anhängen (z. B. PDF, Word, ODT)
- Angehängte Dateien bleiben dauerhaft gespeichert und mit dem Antrag verknüpft
- Dateien lassen sich direkt aus dem Dialog mit dem passenden Programm öffnen
- Einzelne Anhänge können jederzeit wieder entfernt werden
- In der Übersicht zeigt ein kleines Symbol an, wie viele Dateien angehängt sind
Abstimmungszettel erstellen
- Bis zu 10 Anträge für eine Abstimmung auswählen
- Erstellt daraus einen ausgefüllten Abstimmungszettel als bearbeitbares Dokument
3. Wahlen
Von der Kandidatenerfassung bis zur digitalen Live-Abstimmung mit automatischer Auswertung.
Wahlübersicht
- Wahlen können für vier Bereiche angelegt werden:
- Co-Schülersprecher:in
- SV-Rat
- Zukunftsparlament
- SV-Lehrer:in
- Die App erkennt automatisch, ob es sich um eine Erstwahl (grün) oder Neuwahl (orange) handelt – abhängig von bereits durchgeführten Wahlen im laufenden Schuljahr
- Alle vergangenen Wahlen werden mit Titel, Datum und Ergebnis aufgelistet und können jederzeit wieder geöffnet werden
Wahl einrichten
- Wahltitel und -datum festlegen
- Pro Bereich: Anzahl der zu wählenden Personen sowie alle Kandidierenden (Name und ggf. Klasse) eintragen
- Kandidierende lassen sich jederzeit hinzufügen und entfernen
Ergebnis erfassen & auswerten
- Stimmenanzahl pro Kandidierende:r eintragen
- Die Gewinner:innen werden automatisch ermittelt: die Personen mit den meisten Stimmen – bei Stimmengleichheit werden alle Betroffenen aufgenommen
- Das Ergebnis lässt sich manuell anpassen (z. B. bei Stichwahl)
- Mitglieder der Mandatsprüfungs- und Zählkommission (MPZK) eintragen (2–4 Personen)
- Gesamtwahlzettel vor der Wahl erstellen
- Wahlergebnisdokument nach der Auszählung erstellen
Live-Abstimmung
Die Live-Abstimmung ermöglicht eine vollständig digitale und anonymisierte Wahl über das Schulnetzwerk – ohne externe Dienste oder Internetverbindung.
Vorbereitung
- Nur stimmberechtigte Schüler:innen erscheinen in der Auswahlliste: ausschließlich Klassensprecher:innen (KSp) und Stufensprecher:innen (StSp)
- Anwesende Personen per Checkbox auswählen – das jeweilige Amt wird zur Orientierung angezeigt
Abstimmung starten
- Die App vergibt für jede teilnehmende Person einen persönlichen, einmaligen Abstimmungscode
- Gleichzeitig wird im lokalen Netzwerk eine Abstimmungsseite bereitgestellt – die URL wird auf dem Bildschirm angezeigt
- Jede Person gibt ihren Code auf der Seite ein und gibt ihre Stimme(n) ab – anonym und nur einmal möglich
- Während die Abstimmung läuft, zeigt die App einen Fortschrittsbalken und eine Live-Rangliste der Stimmen pro Wahlbereich
Abstimmung beenden
- Mit „Beenden" wird die Abstimmung geschlossen
- Alle Stimmen werden automatisch in die Ergebnisansicht übertragen und die Gewinner:innen sofort berechnet
Codeliste drucken
- Während der Abstimmung lässt sich eine Codeliste als Dokument exportieren – mit Name, Klasse, Amt und persönlichem Code jeder teilnehmenden Person, sortiert nach Klasse
4. Anwesenheit
Schnelle Erstellung von Anwesenheitslisten für SV-Sitzungen.
- Sitzungstyp wählen: SVVV-Sitzung oder SVR-Sitzung
- Datum auswählen (Vorauswahl: heute)
- Teilnehmende aus der Mitgliederliste auswählen – mit Namen, Klasse und Amt
- Mit einem Klick alle auswählen oder die Auswahl aufheben
- Anwesenheitsliste erstellen: erzeugt ein fertig ausgefülltes Dokument
- Wenn für eine SVVV-Sitzung eine Liste erzeugt wird, wird für jede ausgewählte Person die SVVV-Sitzungsstatistik in der Verwaltung automatisch hochgezählt
5. Kasse
Verwaltung von Einnahmen und Ausgaben der SV-Kasse.
- Einnahmen und Ausgaben getrennt erfassen – pro Eintrag Typ, Betrag, Beschreibung, optionale Kategorie, Datum, Zahlungsweg (Bargeld / Bank / Lastschrift), Beleg-Nr., Verantwortliche:r und Notiz
- Zusammenfassung oben auf der Seite: Summe Einnahmen, Summe Ausgaben, Saldo – farblich hervorgehoben
- Status „Verifiziert": jede:r Kassenprüfer:in kann einen Eintrag als verifiziert markieren (und die Markierung wieder aufheben). Nur die Kassenprüfer:in-Rolle darf Einträge löschen – auch nicht-Administrator:innen.
- Filter: „Alle / Offen / Verifiziert" und Volltextsuche über Beschreibung, Kategorie und Verantwortliche:r
- CSV-Import: Einträge aus einer CSV-Datei übernehmen. Vorhandene Kategorien werden automatisch erkannt, fehlende werden angelegt.
- CSV-Export: alle Einträge als CSV-Datei ausgeben
- Kassen-Kategorien verwalten: frei definierbare Kategorien je Eintrag – anlegen, umbenennen, sortieren, entfernen
6. Einstellungen
Schuljahr
- Aktuelles Schuljahr anzeigen und bei Bedarf anpassen (z. B.
2026/27) - Das Schuljahr beeinflusst die Erstwahl-/Neuwahl-Erkennung und die Antragsnummerierung
- Beim ersten Start wird das Schuljahr automatisch ermittelt
Datenspeicherort
- Aktuellen Speicherpfad der App-Daten einsehen
- Speicherort ändern (z. B. auf ein Netzlaufwerk) – optional mit Übernahme der vorhandenen Dateien
- Auf Standard zurücksetzen
- Nur die Rolle Administrator sieht und nutzt diese Schaltflächen
Darstellung
- Dunkles Farbschema für die App erzwingen oder dem System folgen
- Textgröße der gesamten App in 10 %-Schritten von 80 % bis 160 % anpassen
- SVVV-Sitzungsstatistik in der Verwaltung ein-/ausblenden
Sicherheit
- Eigenes Passwort ändern – jeder Benutzer kann das für sein eigenes Konto tun
- Benutzer verwalten (nur Administrator): Benutzerkonten anlegen, bearbeiten, löschen, Passwörter zurücksetzen und den globalen Wiederherstellungscode neu erzeugen
Ämter verwalten
- Ämter anlegen, umbenennen und löschen
- Jedes Amt hat eine ausgeschriebene Bezeichnung (z. B. „Klassensprecher:in") und ein kurzes Kürzel (z. B. „KSp")
- Die Reihenfolge per Drag & Drop ändern – sie bestimmt, welches Amt einer Person bei Mehrfachzuordnung als „primäres Amt" gilt
- Zurücksetzen auf die Standard-Ämter (mit Bestätigung)
Standard-Ämter (in hierarchischer Reihenfolge):
| Kürzel | Bezeichnung |
|---|---|
| Co-SSp | Co-Schülersprecher:in |
| Co-SVR-V | Co-SVR-Vorsitzende:r |
| MdSVR | Mitglied des SV-Rates |
| stv. MdSVR | stellvertretendes Mitglied des SV-Rates |
| MdBDK | Mitglied der Bezirksdelegiertenkonferenz |
| SVL | SV-Lehrer:in |
| KW | Kassenwart:in |
| KP | Kassenprüfer:in |
| MdZP | Mitglied des Zukunftsparlaments |
| StSp | Stufensprecher:in |
| stv. StSp | stellv. Stufensprecher:in |
| KSp | Klassensprecher:in |
| stv. KSp | stellv. Klassensprecher:in |
Antragstypen verwalten
- Eigene Antragstypen hinzufügen und entfernen (erscheinen im Antragsdialog als Auswahl)
- Zurücksetzen auf die Standard-Typen (mit Bestätigung)
Kassen-Kategorien verwalten
- Frei definierbare Kategorien für Kassen-Einträge (z. B. „Mitgliedsbeiträge", „Veranstaltungen", „Bürobedarf")
- Anlegen, umbenennen, sortieren und entfernen – mit Reihenfolge per Drag & Drop
Schüler:innen-Daten importieren und exportieren
- Import: Schüler:innen-Daten aus einer CSV-Datei einlesen
- Erwartete Spalten: Vorname, Nachname, Geburtsdatum, Klasse, Amt(Kürzel)
- Kopfzeile und Spaltenreihenfolge werden automatisch erkannt
- Mehrere Ämter pro Person können kommagetrennt angegeben werden
- Export: alle Einträge als CSV-Datei speichern
Vollsicherung (.zip)
- Vollsicherung exportieren: erzeugt eine
.zipmit allen Schüler-, Antrags-, Vorlagen- und Einstellungsdaten. Die Datei lässt sich auf demselben oder einem anderen Gerät wieder importieren, um den exakt gleichen Zustand wiederherzustellen. - Sicherung importieren: stellt den Zustand aus einer
.zip-Sicherung wieder her. Achtung: aktuelle Daten werden dabei vollständig ersetzt. Nach dem Import die App neu starten.
Dokumente
Alle erzeugten Dokumente sind bearbeitbare OpenDocument-Dateien (.odt) und lassen sich in LibreOffice oder anderen kompatiblen Programmen weiter anpassen.
| Dokument | Verwendung |
|---|---|
| Anwesenheitsliste | SVVV-Sitzungsanwesenheit |
| Anwesenheitsliste SVR | SVR-Sitzungsanwesenheit |
| Gesamtwahlzettel | Ausgabe vor der Wahl |
| Wahlergebnis | Offizielles Ergebnisdokument |
| Abstimmungszettel | Antragsabstimmung |
| OTC-Codeliste | Persönliche Codes für die Live-Abstimmung |
Die Vorlagen liegen im Ordner templates/ und können dort durch eigene Versionen ausgetauscht werden.
Datensicherung
Alle App-Daten werden lokal auf dem Gerät gespeichert – es werden keine Daten an externe Server übertragen. Der Speicherort ist frei wählbar; standardmäßig wird ein verstecktes Verzeichnis verwendet:
- Linux / macOS:
~/.sv_helfer/ - Windows:
%LOCALAPPDATA%\.sv_helfer/
| Daten | Speicherort |
|---|---|
| Schüler:innen, Anträge, Wahlen, Ämter, Antragstypen, Kassen…, Einstellungen, Benutzer | <Datenordner>/data/<schluessel>.json |
| Angehängte Antragsdokumente | <Datenordner>/antraege/<AntragId>/ |
| Eigene Vorlagen | <Datenordner>/vorlagen/ |
In den Einstellungen kann der Speicherort geändert werden. Dabei besteht die Möglichkeit, vorhandene Dateien in den neuen Ordner zu verschieben. Nach einem Wechsel ist ein Neustart der App erforderlich.
Für eine vollständige Sicherung kannst du im Einstellungen-Tab einen .zip-Export anstoßen (siehe oben). Mit dem Import lässt sich der Zustand auf demselben oder einem anderen Gerät exakt wiederherstellen.
Datenschutz & Sicherheit
- Alle Daten werden ausschließlich lokal auf dem Gerät gespeichert – es werden keine Daten an externe Server übertragen
- Mehrere Benutzerkonten mit unterschiedlichen Rollen; jede Rolle sieht nur die für sie freigegebenen Tabs und Aktionen
- Beim ersten Start wird ein Administrator-Konto angelegt; gleichzeitig erscheint ein Wiederherstellungscode, mit dem das Admin-Passwort zurückgesetzt werden kann. Der Code wird nur einmal angezeigt und kann im Einstellungen-Tab vom Admin neu erzeugt werden.
- Nach 30 Minuten Inaktivität wird die App automatisch gesperrt (mit Vorwarnung 2 Minuten vorher)
- Die Live-Abstimmung läuft ausschließlich im lokalen Netzwerk – kein Internetzugang erforderlich; jeder Abstimmungscode ist streng einmalig und kann nicht erraten werden