Eine Webseite, welche dabei hilft den BesucherInnenverkehr in verschiedenen Räumlichkeiten aufzuzeichnen. Die verfügbaren Räume sowie Veranstaltungen, werden von einer Nextcloudkalenderinstanz abgeholt und durch BenutzerInneneingaben ergänzt. Es gibt verschieden Ansichtsmöglichkeiten
- PHP 78.8%
- JavaScript 10.6%
- CSS 8.5%
- Shell 1.9%
- Hack 0.2%
| config | ||
| docs | ||
| public | ||
| scripts | ||
| src | ||
| tools | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| composer.json | ||
| composer.lock | ||
| LICENSE | ||
| README.md | ||
Rezeption Verwaltungstool
Webbasiertes PHP-Portal für Rezeptionsbereiche. Synchronisiert Nextcloud-Kalender (Veranstaltungen/Räume) in eine MySQL-Datenbank und stellt Tagesprogramm, Raumlisten sowie Besucher-Tracking zur Verfügung.
Features
- Navigationsbasiertes Frontend („Rezeptionstool P13“) mit Start, Tagesprogramm, Raumliste und Besucher*innen-Überblick inklusive hero¬formatierter Tag-Uhr-Zeitangabe
- Nextcloud-DAV-Anbindung über Guzzle zur Terminabfrage pro Raum (Kalender)
- Speicherung von Veranstaltungen (Name, Beschreibung, Zeiten, Kalendername) in MySQL
- Tagesprogramm-Ansicht mit chronologischer Liste und klickbaren Veranstaltungszeilen, inklusive Inline-Tooltip und Reload-Modus über
/api/sync - Besucherformular mit Pflichtfeldern Name/Anmeldung, optional Abmeldung/Kommentar, Speicherung per Raum + inline Editierbarkeit + CSV-Export über Zeitraum
- Besucher*innen-Ansicht mit Datumsbereich-Auswahl, Filterung, Tabelle mit Datumsspalte und Hinweis zum Zeitfenster
- Installationsskript für notwendige Tabellen
- Konfigurierbare Debug-Logs unter
logs/
Systemanforderungen
- PHP >= 8.1 mit Erweiterungen: PDO_MYSQL, cURL, JSON
- Composer >= 2
- MySQL 8 (oder kompatibel) mit UTF8MB4
- Zugriff auf Nextcloud-Instanz mit DAV-API und Kalendernamen
- Webserver (Apache/Nginx) oder
php -Sfür Entwicklung
Projektstruktur
config/ # Konfigurationsdatei config.php
public/ # Öffentlicher Webroot (index.php, assets, api.php)
src/ # PHP-Business-Logik (Controller, Service, Repository, View)
scripts/install.php# DB-Migrations/Installationsskript
tools/ # Hilfs-/Debugskripte (früher `tmp/`)
logs/ # Log-Ausgaben (app.log, install.log)
composer.json # Abhängigkeiten & Autoloading
Installation
-
Repository bereitstellen
git clone <repo-url> rezeption cd rezeption composer install -
Konfiguration anpassen
- Datei
config/config.phpmit echten Werten versehen:nextcloud.base_url,nextcloud.username,nextcloud.passwordnextcloud.calendars(Raumnamen)database.host,database.port,database.name,database.username,database.password
- Optional:
debugundtimezonesetzen
- Datei
-
Datenbanktabellen anlegen
php scripts/install.phpSkript erzeugt Tabellen
eventsundvisitorsinkl. Relationen. -
Webserver konfigurieren
- Webroot auf
public/legen - Rewrite-Regeln für „schöne“ URLs (oder Router via index.php verwenden)
- Alternativ für Entwicklung:
composer start # öffnet http://localhost:8000
- Webroot auf
-
Nextcloud-Sync planen
Rezeption\Service\EventSyncServicemit gewünschtem Datum aufrufen (z. B. CLI-Skript oder Cronjob), um aktuelle Veranstaltungen abzurufen und in die DB zu schreiben.
Debugging
- Allgemeiner Logger:
logs/app.log - Installationsskript-Log:
logs/install.log config['debug'] = trueaktiviert zusätzliche Debug-Ausgaben.
API-Endpunkte
POST /api/visitors– speichert Besucher (JSON: event_id, room_name, name, arrival_time, optional departure_time/comment)POST /api/visitors/inline– aktualisiert einzelne Felder per Inline-Editing (JSON: id, field, value)
Cronjobs / Zeitgesteuerte Aufgaben
0 05 * * * cd /pfad/zur/app && php scripts/sync.php– synchronisiert täglich um 05:00 Uhr alle Nextcloud-Kalender.0 06 * * * cd /pfad/zur/app && php scripts/cleanup_visitors.php– löscht ältere Besucher auf Basis vonconfig.retention_days.
Weitere Schritte
- Deployment auf Zielsystem inkl. HTTPS/Reverse-Proxy
- Scheduler/Command für regelmäßige Nextcloud-Synchronisation implementieren und einplanen
- Suche-Funktion in Navigation ausbauen (derzeit Platzhalter)
Dokumentation
docs/vision.mdbeschreibt Anforderungen, Vision und Umsetzung für künftige KI-Weiterarbeit.CHANGELOG.mddokumentiert alle wichtigen Änderungen.
Lizenz
Dieses Projekt steht unter der Lizenz GPL-3.0-or-later. Der komplette Quelltext darf frei genutzt, geändert und weitergegeben werden, solange der Lizenztext beiliegt und die Änderungen ebenfalls unter GPL-3.0-or-later stehen.