Software
GTARP - LSMC ZENTRALE
199,00 EUR inkl. 0% USt.
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
- Prüfer (Recht pruefungen) wählt ein Modul und den zu prüfenden Mitarbeiter aus.
- Jedes Thema wird einzeln mit Bestanden / Nicht bestanden bewertet.
- 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.
- Das Ergebnis erscheint automatisch im Profil des Mitarbeiters sowie in der öffentlichen Ausbildungsmodule-Übersicht.
- 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.
- Kurstermin anlegen (Recht ehk_kurse): Datum, Uhrzeit, Ort, Kursgebühr, Infotext.
- Öffentliche Anmeldung ohne Login: Spieler melden sich mit Name und Telefonnummer über eine eigene öffentliche Seite an.
- 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.
- Laufende Anmeldungen verwalten (Recht ehk_anmeldungen): übergreifende Suche/Filter über alle aktuellen Kurse, Status setzen.
- 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.
- 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
- 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.
- 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
- Beim Entlassen öffnet sich ein Dialog mit Pflicht-Auswahl des Entlassungsgrunds: Behördenwechsel, Inaktiv, Selbstständige Kündigung oder Sonstiger Grund.
- Bei „Sonstiger Grund" ist zusätzlich eine Freitext-Begründung Pflicht; bei den übrigen Gründen ist eine Begründung optional möglich.
- 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:
Reiner Text, vollständig aus dem internen Regelwerk übernommen.
Text + Bildergalerie (Mehrfach-Upload mit Bildunterschriften).
Text + Bildergalerie.
Text + Bildergalerie.
Reiner Text, z. B. Vorgehen bei Großeinsätzen mit Exekutivbehörden.
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/