Die komplette Datenbank als EER Modell [1] generiert mit MySQL Workbench.
tblMitglied enthält alle Informationen über ein Mitglied.
tblEinAustritt enthält alle Informationen über einen Ein- bzw Austritt aus der Feuerwehr eines Mitglieds. Jedes Mitglied kann mehrmals aus der Feuerwehr Ein- bzw Austreten.
tblAuszeichnung enthält alle möglichen Auszeichnungen welche ein Mitglied während seinen Dienstjahren in der Feuerwehr erhalten kann.
tblMitgliederFührerscheine enthält alle möglichen Führerscheine welche ein Mitglied besitzen kann.
tblPosition enthält alle Positionen welche von den Mitglieder eingenommen werden können.
tblEreignis enthält alle Ereignisse welche für eine Feuerwehr auftreten können. Zu Eregnissen zählen:
tblLehrgang enthält alle möglichen Lehrgänge welche ein Mitglied absolvieren kann und wie lange ein Lehrgang dauert.
tblEinsatzbericht wird als Erweiterung der Tabelle tblEreignis verwendet und enthält alle weiteren Informationen welche für einen Einsatz aufgezeichnet werden müssen.
tblInventar enthält alle Inventargegenstände einer Feuerwehr. Dazu zählen:
tblFahrzeug enthält alle Informationen welche über ein Fahrzeug benötigt werden.
Enthält alle möglichen Protokolle welche erstellt worden sind. Ein Protokoll hat Verbindungen zu den Tabellen:
Da innerhalb eines Protokoll Referenzen auf einzelne Mitglieder, Ereignisse, Fahrzeuge, Inventargegenstände gesetzt werden können.
Die fvs.py ist die Hauptdatei und von ihr aus wird FVS gestartet. Im Verzeichnis UI_Aufbau sind die Hauptdateien der einzelnen Bereiche. Sie importieren die für sie benötigten Python Module und sie bauen die grafische Benutzeroberfläche aus QMLUI auf.
QML_Komponenten enthält einzelne Komponenten der QMLUI (Buttons, Listen, Labels, ...), aus welchen die Oberfläche aufgebaut wird.
Weitere Informationen zu den einzelnen Dateien/Verzeichnisse ist zu finden im Teil der Programmcode Dokumentation
Die Kontroller kümmern sich um das empfangen der Signale aus der QMLUI und dem Aufrufen der jeweiligen Methode, welche zur ID des Senders passen.
Legende
Der Operationen Kontroller wird benötigt, da die QMLUI ein QtCore.Signal() an den Kontroller schickt, wenn jedoch zum Beispiel die Daten aus der grafischen Benutzeroberfläche ausgelesen werden soll (Beispiel aus Eingabefeldern), so muss diese Operation erst durch den Python Unterbau gestartet werden.
Nach dem Ablauf 2: Methode_aufrufen geht ein Signal zurück an die QMLUI, welches diese veranlasst die Informationen in Variablen zu schreiben. Bei diesem Vorgang tritt folgendes Problem auf: Wenn der Python Unterbau nicht auf ein Signal der QMLUI warten würde, würde es die Variablen auslesen, bevor die QMLUI diese neue gesetzt hat.
Die Lösung der Kontroller ist suboptimal, jedoch konnte bislang keine bessere Lösung gefunden werden, welche mit dem momentanen Aufbau & Struktur von FVS kompatibel ist.
FVS ist in 5 Benutzerbereiche aufgeteilt:
Der Administrator hat keinen direkten Zugang zu den anderen Benutzerbereichen, jedoch hat er die Möglichkeit die Tabellen der Datenbank zu kontrollieren/optimieren/reparieren. [2]
Der Inventarist kümmert sich um die Verwaltung des Inventars der Feuerwehr. Der Inventarist kontrolliert den Bestand der Gegenstände und deren Zustand.
Der Kommandant kümmert sich um die Verwaltung der Mitglieder. Außerdem hat der Kommandant als Leiter der Feuerwehr zugang zu allen anderen Benutzerbereichen mit Ausnahme des Admin Bereichs.
Der Maschinist kümmert sich um die Fahrzeuge der Feuerwehr und kontrolliert regelmäßig deren Ausstattung und die Datumen derer Kontrollen.
Der Sekretär kümmert sich um die Verwaltung der Übungen, Einsatzberichten und die Protokollführung, in welchem Referenzen über Fahrzeuge, Mitglieder, Ereignisse oder Inventargegenstände gesetzt werden können, um so besser die Übersicht zu behalten, von was in einem Protokoll die Rede ist.
Benutzername | Passwort | Benutzerbereich |
---|---|---|
admin | admin | Administrator |
inventarist | inventarist | Inventarist |
kommandant | kommandant | Inventarist, Kommandant Maschinist, Sekretär |
maschinist | maschinist | Maschinist |
sekretaer | sekretaer | Sekretär |
Footnotes
[1] | http://en.wikipedia.org/wiki/Enhanced_entity%E2%80%93relationship_model |
[2] | Die verwendete Version der Datenbank und Storage Engines sind nicht kompatibel mit diesen Funktionen |