GTARP - LSMC ZENTRALE

Software

GTARP - LSMC ZENTRALE

199,00 EUR inkl. 0% USt.

Ausführliche Systembeschreibung

LSMC – Los Santos Medical Center

Individuell entwickeltes Verwaltungssystem für den Rettungsdienst eines GTA-Roleplay-Servers – von Dienstplanung über Ausbildung bis zum Erste-Hilfe-Kurs, mit vollständig serverseitig geprüftem Rang- und Rechtesystem.

1. Überblick & Technik

Das LSMC-Verwaltungssystem ist eine eigenständige Webanwendung, die speziell für den Rettungsdienst (LSMC) eines GTA-Roleplay-Servers entwickelt wurde. Architektur, Sicherheitskonzept und Rechtesystem basieren auf dem bewährten DPOS-System (Department of Public Operations & Services) und wurden vollständig auf die medizinischen Abläufe des LSMC zugeschnitten – kein Framework, volle Kontrolle über jede Zeile Code.

Backend

PHP 8+ (objektorientiert), MySQL/MariaDB über PDO mit ausschließlich Prepared Statements, kein ORM, keine externen PHP-Frameworks.

Frontend

Bootstrap 5.3 mit nativem Dark-/Light-Mode, reines Vanilla-JavaScript (kein React/Vue), responsives Layout für Desktop und Mobilgeräte.

2. Dashboard & Dienstsystem

Die eingeloggte Startseite fungiert als Dienstblatt: Sie zeigt in Echtzeit, welche Mitarbeiter aktuell im Dienst sind (Rang, Name, Dienstnummer, Zeitpunkt des Dienstantritts, Fahrzeug/Notiz), dazu Kennzahlen wie Gesamtmitarbeiterzahl, Anzahl im Dienst, absolvierte Prüfungen, offene EHK-Anmeldungen und die insgesamt geleistete Dienstzeit.

Für nicht eingeloggte Besucher zeigt dieselbe Adresse eine öffentliche Live-Übersicht mit Grundkennzahlen und einer Vorschau der nächsten Erste-Hilfe-Kurse samt direktem Anmeldelink.

Das eigentliche Dienstsystem (dienst.php) erlaubt jedem Mitarbeiter, sich mit Fahrzeugnummer in den Dienst ein- und wieder auszutragen; die Dauer wird automatisch erfasst und fließt in die Statistik ein.

3. Ausbildungssystem

Das Prüfungssystem ist bewusst prüfergeführt aufgebaut – ein Mitarbeiter kann sich nicht selbst prüfen. Fünf Module bilden die komplette Laufbahn ab:

Modul Zweck
EST Einstellungstest – Pflicht für jeden Lehrling (Rang 0), prüft die Dienstvorschriften-Kenntnis
FST Fahrtest mit Zeitlimit und Fehlerpunkte-System
Fahrsicherheitstraining Praktische Streckenfahrt mit dem Rettungswagen
NFZ Notfallzentrumprüfung – Abläufe & Zuständigkeiten
Approbation Abschließende Prüfung zur vollen ärztlichen Zulassung

Ablauf einer Prüfung

  1. Prüfer (Recht pruefungen) wählt ein Modul und den zu prüfenden Mitarbeiter aus.
  2. Jedes Thema wird einzeln mit Bestanden / Nicht bestanden bewertet.
  3. Am Ende trifft der Prüfer die finale, unabhängige Gesamtentscheidung – unabhängig von der automatisch berechneten Punktzahl, sodass auch komplexe Regelwerke (z. B. Fehlerpunkte beim FST) korrekt abgebildet werden.
  4. Das Ergebnis erscheint automatisch im Profil des Mitarbeiters sowie in der öffentlichen Ausbildungsmodule-Übersicht.
  5. Themen/Fragen je Modul werden über den Fragenkatalog (Recht fragenkatalog) gepflegt.

4. Erste-Hilfe-Kurs (EHK)

Der komplette Lebenszyklus eines Erste-Hilfe-Kurses ist digital abgebildet – von der öffentlichen Anmeldung bis zur durchsuchbaren Archivierung.

  1. Kurstermin anlegen (Recht ehk_kurse): Datum, Uhrzeit, Ort, Kursgebühr, Infotext.
  2. Öffentliche Anmeldung ohne Login: Spieler melden sich mit Name und Telefonnummer über eine eigene öffentliche Seite an.
  3. Kurs abhalten (Recht ehk_abhalten): Am Kurstag zeigt die Seite alle Anmeldungen zusammen mit dem hinterlegten Kursinhalt als Leitfaden. Pro Teilnehmer wird die Anwesenheit erfasst und direkt bewertet.
  4. Laufende Anmeldungen verwalten (Recht ehk_anmeldungen): übergreifende Suche/Filter über alle aktuellen Kurse, Status setzen.
  5. Kurs abschließen & archivieren: Ein deutlich hervorgehobener Button verschiebt den Kurs inklusive aller Teilnehmer (Anwesenheit + Ergebnis) gemeinsam ins EHK-Archiv; er verschwindet danach aus den aktiven Ansichten.
  6. EHK-Archiv (Recht ehk_archiv): Jederzeitige Namenssuche über alle archivierten Kurse mit eindeutigem Vermerk je Teilnehmer:
    War dabei – Bestanden War dabei – Nicht bestanden War nicht dabei
  7. Statusänderungen mit Nachweispflicht: Die Erstbewertung benötigt keine Begründung. Jede spätere Korrektur verlangt zwingend eine Begründung, die zusammen mit Alt-/Neu-Status, Zeitpunkt und Mitarbeiter unveränderlich protokolliert wird – egal ob die Änderung über „Abhalten", „Anmeldungen" oder im „Archiv" erfolgt.
  8. Der Kursinhalt selbst ist als Text hinterlegt und für Mitarbeiter mit Recht ehk_inhalt jederzeit bearbeitbar.

5. Mitarbeiterverwaltung & Entlassungssystem

Die Mitarbeiterverwaltung (Recht mitarbeiter) erlaubt das Anlegen, Bearbeiten und Entlassen von Mitarbeitern – stets unter Beachtung der Rang-Hierarchie (siehe Abschnitt 7).

Entlassungs-Workflow

  1. Beim Entlassen öffnet sich ein Dialog mit Pflicht-Auswahl des Entlassungsgrunds: Behördenwechsel, Inaktiv, Selbstständige Kündigung oder Sonstiger Grund.
  2. Bei „Sonstiger Grund" ist zusätzlich eine Freitext-Begründung Pflicht; bei den übrigen Gründen ist eine Begründung optional möglich.
  3. Der Mitarbeiter wird mit Name, Dienstnummer, letztem Rang, Grund, Begründung, entlassendem Mitarbeiter und Zeitpunkt unveränderlich im Mitarbeiterarchiv dokumentiert und erst danach gelöscht.

Mitarbeiterarchiv

Das Mitarbeiterarchiv (mitarbeiter_archiv.php) ist über ein eigenes, separates Recht (mitarbeiter_archiv) geschützt – standardmäßig ausschließlich der Leitungsebene vorbehalten (allen Rängen, die auch die Rechteverwaltung besitzen), in der Rechteverwaltung aber jederzeit frei anpassbar. Dort kann nach Name, Benutzername oder Dienstnummer gesucht sowie nach Entlassungsgrund gefiltert werden.

6. Content-Bereiche & News

Fünf redaktionelle Bereiche sind für alle eingeloggten Mitarbeiter lesbar, die Bearbeitung ist über das Recht seitenverwaltung geschützt:

Dienstvorschriften

Reiner Text, vollständig aus dem internen Regelwerk übernommen.

Kleiderordnung

Text + Bildergalerie (Mehrfach-Upload mit Bildunterschriften).

Parkregelungen

Text + Bildergalerie.

Fahrzeuge

Text + Bildergalerie.

Informationen

Reiner Text, z. B. Vorgehen bei Großeinsätzen mit Exekutivbehörden.

News

Klassisches CMS für Ankündigungen, ebenfalls für alle lesbar.

7. Rang- und Rechtesystem

13 Ränge bilden die komplette LSMC-Laufbahn ab, frei umbenennbar und farblich anpassbar:

Level Rang
0 Lehrling
1 Sanitäter
2 Rettungshelfer
3 Rettungssanitäter
4 Rettungsassistent
5 Notfallsanitäter
6 Facharzt
7 Notarzt
8 Stationsarzt
9 Leitender Notarzt
10 Oberarzt
11 Chefarzt
12 Ärztlicher Direktor Vollzugriff

Rechte werden granular pro Rang vergeben (aktuell 19 einzelne Rechte-Schlüssel, u. a. für Dienst, Ausbildung, EHK in allen drei Ausprägungen, Mitarbeiterverwaltung, Mitarbeiterarchiv, Seitenverwaltung, Statistik, Logs, Einstellungen, API). Rang 12 besitzt automatisch uneingeschränkten Vollzugriff.

Hierarchieregel (serverseitig erzwungen): Ein Mitarbeiter mit Rang X darf ausschließlich Mitarbeiter, Ränge und Rechte mit einem echt niedrigeren Rang verwalten – niemals gleich- oder höherrangige, auch nicht den eigenen Rang oder die eigenen Rechte.

8. Sicherheitskonzept

Bereich Umsetzung
SQL-Injection Ausschließlich PDO mit echten Prepared Statements (kein Emulate-Modus), keine String-Verkettung von SQL.
XSS Alle Ausgaben über zentrale Escaping-Funktion, Content-Security-Policy-Header gesetzt.
CSRF Session-gebundenes Token in jedem Formular, auch bei der öffentlichen EHK-Anmeldung.
Passwörter password_hash() mit automatischem Rehash bei veraltetem Cost-Faktor.
Sessions httponly, samesite=Lax, secure bei HTTPS, serverseitige Session-Tabelle für aktiven Widerruf.
Automatischer Logout Bei Rang- oder Rechteänderung werden betroffene Sessions sofort serverseitig invalidiert.
Datei-Uploads MIME-Type-Prüfung, zufällige Dateinamen, PHP-Ausführung im Upload-Ordner deaktiviert.
Logging Jede sicherheitsrelevante Aktion protokolliert (Benutzer, IP, Browser, Zeitpunkt), einsehbar nur mit Recht logs.

9. API, Statistik & Backup

Eine token-authentifizierte REST-API (/api/v1/...) stellt Mitarbeiter-, Dienst- und EHK-Daten für externe Anbindungen bereit (z. B. Discord-Bots). Die Statistik-Seite visualisiert Dienstzeiten, Prüfungsergebnisse und EHK-Ergebnisse je Kurstermin; alle Listen lassen sich als CSV, Excel oder PDF exportieren. Über die Einstellungen kann jederzeit ein vollständiger SQL-Dump der Datenbank als Backup erzeugt werden.


Live System : https://lsmc.frakhub.de/