Webapplikation zur Verwaltung von Schiessanlaessen mit Anlaessen, Schuetzen, Standblaettern, Kasse, Ranglisten und SIUS-Anbindung.
Das Projekt besteht aus einer PHP-Webapplikation, einer MySQL/MariaDB-Datenbank und einem separaten C#-Windows-Client fuer den Datenaustausch mit SIUS.
- Benutzer-Login fuer den geschuetzten Bereich
- Anlaesse erstellen, bearbeiten und konfigurieren
- Schuetzen und Adressen verwalten
- Standblaetter loesen, bearbeiten, abrechnen und drucken
- Stiche, Gaben und Auszeichnungslimiten konfigurieren
- Kassenuebersicht und Ranglisten
- REST-API fuer den SIUS-Client
- Import von SIUS-Schussdaten
app/
Controllers/ HTTP-Controller fuer Weboberflaeche und API
Core/ Router, Response, View, Database und Basisklassen
Models/ Datenbankzugriff
Services/ Geschaeftslogik
Views/ PHP-Views
client/
Form1.cs C# Windows Forms SIUS-Client
public/
index.php Einstiegspunkt der Webapplikation
assets/ CSS und JavaScript
schema.sql Datenbankschema
beispieldaten.sql Beispieldaten
config.php Lokale Konfiguration
- PHP 8.x mit PDO-MySQL
- MySQL oder MariaDB
- Webserver mit Document Root auf
public/ - Fuer den SIUS-Client: Windows mit .NET/Windows Forms Entwicklungsumgebung
-
Repository klonen.
-
Datenbank erstellen:
mysql -u root -p < schema.sql -
Optional Beispieldaten importieren:
mysql -u root -p winklar < beispieldaten.sql -
config.phpan die lokale Umgebung anpassen:define('DB_HOST', 'localhost'); define('DB_NAME', 'winklar'); define('DB_USER', '...'); define('DB_PASS', '...');
-
Webserver so konfigurieren, dass
public/der Document Root ist.
Mit dem eingebauten PHP-Server kann die Anwendung lokal gestartet werden:
php -S localhost:8000 -t publicDanach ist die Anwendung unter folgender Adresse erreichbar:
http://localhost:8000
/login- Login/dashboard- Dashboard/anlass- Anlassuebersicht/anlass/neu- neuen Anlass erstellen/anlass/{id}- Anlassdetail/anlass/{id}/konfiguration- Anlass konfigurieren/anlass/{id}/schuetzen- Schuetzenverwaltung/anlass/{id}/loesen- Standblatt auswaehlen/anlass/{id}/loesen/neu- Standblatt loesen/anlass/{id}/kasse- Kassenuebersicht/anlass/{id}/abschliessen- Rangliste
Der C#-Client kommuniziert ueber JSON mit der Webapplikation. Die wichtigsten Endpunkte sind:
POST /api/loginGET /api/anlaesseGET /api/anlaesse/{id}/shootersGET /api/anlaesse/{id}/shooters/new?sinceId=...POST /api/anlaesse/{id}/shots/import
Geschuetzte Endpunkte verwenden einen Bearer Token:
Authorization: Bearer <token>
Accept: application/jsonDie vollstaendige Schnittstellendokumentation steht in client/doku_schnitstelle.md.
zusammenfassung.md- fachliche und technische ZusammenfassungDESIGN_GUIDE.md- Designgrundlagenschema.sql- Datenbankschemaclient/doku_schnitstelle.md- SIUS-Client API
config.php enthaelt lokale Zugangsdaten und sollte fuer produktive Installationen passend abgesichert werden. In einer oeffentlichen GitHub-Ablage sollten echte Passwoerter, produktive Datenbankzugriffe und andere Secrets nicht versioniert werden.