diff --git a/DeskHub-Webseite/README.md b/DeskHub-Webseite/README.md index ac3a2b77..ec3207a5 100644 --- a/DeskHub-Webseite/README.md +++ b/DeskHub-Webseite/README.md @@ -4,12 +4,17 @@ ![DeskHub Kundenportal](DeskHub-Webseite/docs/images/customer-portal.png) +**Aktuelle Versionen:** Server **1.0.29** · Android-App **3.1.0** · Windows-Programm **2.7.0** · Minecraft-Plugin **1.0.0** + > Diese Anleitung ist auch für Einsteiger geeignet. Über das Inhaltsverzeichnis kommt ihr direkt zum gewünschten Thema. Die Abschnitte [Plugins entwickeln](#plugins-entwickeln) und [API und Webhooks](#api-und-webhooks-für-entwickler) richten sich an Entwickler. ## Funktionen - **Kundenportal** mit Ticket-Erstellung, Ticketstatus, Wissensdatenbank und frei gestaltbaren Seiten +- **Digitaler Assistent** im Kundenportal: beantwortet Fragen aus Wissensdatenbank und eigenen Antworten, erstellt auf Wunsch das Ticket, mit Fragen-Log, Rückmeldung 👍/👎 und eigenen Wortgruppen (ohne externen KI-Dienst) - **Mitarbeiterbereich** mit Ticketlisten, Filtern, gespeicherten Ansichten, Zuweisungen und internen Notizen +- **Wiedervorlage** („auf später legen“), **Beobachter**, **ähnliche Tickets und Artikel** beim Bearbeiten und **Erinnerung an Kunden** vor dem automatischen Schließen +- **Automatik**: Tickets beim Eingang oder Öffnen zuweisen, Status automatisch auf „Offline“, automatische Abmeldung, Ticket-Sperre gegen Doppelbearbeitung - **E-Mail**: Versand über SMTP (auch pro Absenderadresse), automatischer Ticketimport über IMAP - **Abteilungen, Teams und Rollen** mit Berechtigungen, die pro Abteilung unterschiedlich sein können - **SLA-Pläne**, Eskalations- und Ticketregeln, Geschäftszeiten und Feiertage @@ -19,10 +24,37 @@ - **Plugins** zum Nachrüsten eigener Funktionen - **Update-Funktion** für Programmdateien und Datenbank, Backups und Datenschutz-Funktionen - **Import aus osTicket** inklusive Abteilungen, Nachrichten und Anhängen -- **Windows-App und Android-App** mit hellem und dunklem Design, direkt aus dem Mitarbeiterbereich herunterladbar +- **Windows-Programm und Android-App** mit hellem und dunklem Design, Push-Benachrichtigungen, Verwaltung nach Rechten und Android-**Widget** in drei Größen, direkt aus dem Mitarbeiterbereich herunterladbar +- **Minecraft-Plugin** (Paper, Spigot, BungeeCord in einer Datei) zum Melden von Spielern und Problemen als Ticket ## Einblicke +### Demo-Video (mit Beispieldaten) + +[![DeskHub Demo](DeskHub-Webseite/docs/video/deskhub-demo.gif)](DeskHub-Webseite/docs/video/deskhub-demo.mp4) + +Klick auf die Vorschau öffnet das Video ([deskhub-demo.mp4](DeskHub-Webseite/docs/video/deskhub-demo.mp4), etwa 75 Sekunden). Alle Namen, Tickets und Antworten darin sind erfunden. Es zeigt das Kundenportal mit dem digitalen Assistenten, die Übersicht, Ticketliste und Ticketansicht mit Wiedervorlage und Beobachtern, die Verwaltung des Assistenten mit Fragen-Log sowie das Windows-Programm. + +### Digitaler Assistent im Kundenportal + +[![Digitaler Assistent](DeskHub-Webseite/docs/images/demo-assistent-kunde.png)](DeskHub-Webseite/docs/images/demo-assistent-kunde.png) + +### Übersicht im Mitarbeiterbereich + +[![Übersicht](DeskHub-Webseite/docs/images/demo-uebersicht.png)](DeskHub-Webseite/docs/images/demo-uebersicht.png) + +### Ticket mit Wiedervorlage, Beobachtern und passenden Artikeln + +[![Ticket mit Wiedervorlage](DeskHub-Webseite/docs/images/demo-ticket-wiedervorlage.png)](DeskHub-Webseite/docs/images/demo-ticket-wiedervorlage.png) + +### Fragen-Log des Assistenten + +[![Fragen-Log](DeskHub-Webseite/docs/images/demo-assistent-log.png)](DeskHub-Webseite/docs/images/demo-assistent-log.png) + +### Windows-Programm + +[![Windows-Programm](DeskHub-Webseite/docs/images/demo-windows-ticket.png)](DeskHub-Webseite/docs/images/demo-windows-ticket.png) + ### Neues Ticket erstellen [![Neues Ticket erstellen](DeskHub-Webseite/docs/images/new-ticket.png)](DeskHub-Webseite/docs/images/new-ticket.png) @@ -49,6 +81,10 @@ - [E-Mails versenden (SMTP)](#e-mails-versenden-smtp) - [E-Mails automatisch abrufen (Postfächer)](#e-mails-automatisch-abrufen-postfächer) - [Automatisierung (Cronjobs)](#automatisierung-cronjobs) +- [Status und automatisch Offline](#status-und-automatisch-offline) +- [Digitaler Assistent](#digitaler-assistent) +- [Wiedervorlage, Beobachter, ähnliche Tickets, Kundenerinnerung](#wiedervorlage-beobachter-ähnliche-tickets-kundenerinnerung) +- [Ticket-Sperre und automatische Zuweisung](#ticket-sperre) - [SLA-Pläne](#sla-pläne) - [Gespeicherte Ansichten](#gespeicherte-ansichten) - [Berichte und Bericht-Baukasten](#berichte-und-bericht-baukasten) @@ -64,6 +100,7 @@ - [API und Webhooks (für Entwickler)](#api-und-webhooks-für-entwickler) - [Sicherheit und Datenschutz](#sicherheit-und-datenschutz) - [Backup](#backup) +- [Demo-Video neu erzeugen](#demo-video-neu-erzeugen) - [Hilfe, etwas funktioniert nicht](#hilfe-etwas-funktioniert-nicht) --- @@ -329,14 +366,14 @@ Der Assistent beantwortet Fragen im Kundenportal und ersetzt dabei das Live-Chat - Für alles: einmal unter System-Update „Datenbank aktualisieren“ (Migration 0046). ## Digitaler Assistent in den Apps -Android-App (ab 2.9.0) und Windows-Programm (ab 2.7.0) haben die Verwaltung des Assistenten fest eingebaut (Verwaltung → „Digitaler Assistent“) mit fünf Bereichen: Einstellungen, zusätzliche Antworten (anlegen, ändern, löschen), Fragen-Log (Kennzahlen, Filter, Suche, häufige Fragen ohne Antwort mit „Antwort anlegen“, Log leeren), Gleichbedeutende Wörter und „Frage ausprobieren". Der Bereich erscheint nur für Administratoren und Mitarbeiter mit dem Recht „Digitalen Assistenten verwalten“; die Schnittstelle `api/staff/v1/assistant.php` prüft das Recht bei jedem Aufruf und trägt jede Änderung ins Admin-Protokoll ein. +Android-App (ab 2.9.0, aktuell 3.1.0) und Windows-Programm (ab 2.7.0) haben die Verwaltung des Assistenten fest eingebaut (Verwaltung → „Digitaler Assistent“) mit fünf Bereichen: Einstellungen, zusätzliche Antworten (anlegen, ändern, löschen), Fragen-Log (Kennzahlen, Filter, Suche, häufige Fragen ohne Antwort mit „Antwort anlegen“, Log leeren), Gleichbedeutende Wörter und „Frage ausprobieren". Der Bereich erscheint nur für Administratoren und Mitarbeiter mit dem Recht „Digitalen Assistenten verwalten“; die Schnittstelle `api/staff/v1/assistant.php` prüft das Recht bei jedem Aufruf und trägt jede Änderung ins Admin-Protokoll ein. ## Weboberfläche aus den Apps öffnen -Android-App (ab 2.8.0) und Windows-Programm (ab 2.6.0) zeigen in der Verwaltung zusätzlich die Seiten, die sie nicht selbst nachbauen: Einstellungen, Digitaler Assistent, Wiederkehrende Tickets, Textbausteine, Ticket-Felder, benutzerdefinierte Listen, Seiten, Webhooks, API-Schlüssel, Plugins, Backup, System-Update, Sicherheitsprüfung, Postfächer, osTicket-Import sowie Erwähnungen und Mitarbeiterverzeichnis. Im Ticket öffnet „Im Browser“ die Ticketseite (zusammenführen, aufteilen, drucken). +Das Windows-Programm (ab 2.6.0) zeigt in der Verwaltung zusätzlich die Seiten, die sie nicht selbst nachbauen: Einstellungen, Digitaler Assistent, Wiederkehrende Tickets, Textbausteine, Ticket-Felder, benutzerdefinierte Listen, Seiten, Webhooks, API-Schlüssel, Plugins, Backup, System-Update, Sicherheitsprüfung, Postfächer, osTicket-Import sowie Erwähnungen und Mitarbeiterverzeichnis. Im Ticket öffnet „Im Browser“ die Ticketseite (zusammenführen, aufteilen, drucken). - **Rechte:** Der Server (`api/staff/v1/web_pages.php`) liefert nur Seiten, die der Mitarbeiter öffnen darf (Administrator: alle; „Digitalen Assistenten verwalten“ und „E-Mail-Adressen verwalten“ als Einzelrechte; Erwähnungen und Verzeichnis für alle). Die Weboberfläche prüft die Rechte danach noch einmal selbst. -- **Anmeldung:** Die App holt eine einmalige Adresse (`staff/app_login.php?t=…`), die 60 Sekunden gilt und nur einmal funktioniert; sie meldet im Browser an und leitet auf die Seite weiter. Jede Übergabe steht im Admin-Protokoll. Abgelaufene, benutzte oder erfundene Adressen führen zur Anmeldeseite. Dafür einmal „Datenbank aktualisieren“ (Migration 0047). +- **Anmeldung:** Die App holt eine einmalige Adresse (`staff/app_login.php?t=…`), die 60 Sekunden gilt und nur einmal funktioniert; sie meldet im Browser an und leitet auf die Seite weiter. Jede Übergabe steht im Admin-Protokoll. Abgelaufene, benutzte oder erfundene Adressen führen zur Anmeldeseite. Dafür einmal „Datenbank aktualisieren“ (Migration 0047). Die Android-App 3.x enthält diese Browser-Übergabe nicht mehr; die Schnittstelle bleibt auf dem Server für das Windows-Programm. ## Ticket-Sperre @@ -449,12 +486,18 @@ Beide Apps sind für Mitarbeiter und Admins gedacht und haben ein helles und ein **Was die Apps können:** -- Tickets bearbeiten (antworten, Notizen, zuweisen, Status ändern, lösen, schließen), Übersicht, Kundenverzeichnis, internen Chat mit Kollegen +- Tickets bearbeiten (antworten, Notizen, zuweisen, Status ändern, lösen, schließen), Übersicht, Kundenverzeichnis, internen Chat und Live-Chat +- **Wiedervorlage** („Auf später“: 1 Stunde bis 1 Woche, im Windows-Programm auch eigener Zeitpunkt), **Beobachten**, Filter „Wiedervorlage“ und „Beobachtet“ und die Karte **„Dazu passend“** (Artikel und ähnliche gelöste Tickets) +- **Digitalen Assistenten komplett verwalten**: Einstellungen, zusätzliche Antworten, Fragen-Log, Gleichbedeutende Wörter, „Frage ausprobieren“ (nur mit dem Recht „Digitalen Assistenten verwalten“) - Beim Antworten zeigen die Apps nur die Textbausteine der Abteilung des Tickets (plus die für alle Abteilungen) und bieten wie im Web die **Signatur-Auswahl** (meine, Abteilung, keine) mit Vorschau. Das setzt einen Server mit diesem Stand voraus; ältere Server liefern die Signaturen nicht, dann antworten die Apps wie bisher. - Gespeicherte Ansichten nutzen und Berichte aus dem Bericht-Baukasten ansehen - Störungs- und Verbindungsbanner - Admins und Co-Admins finden zusätzlich die **Verwaltung** mit fast allen Adminportal-Bereichen, je nach zugewiesenen Rechten: Abteilungen, Prioritäten, SLA-Pläne, Hilfethemen, E-Mail-Adressen (inkl. Test), Wissensdatenbank, E-Mail-Vorlagen, Organisationen, Mitarbeiter, Teams, Rollen, Admin-Protokoll, Eskalationsregeln, Zeiterfassung, Geschäftszeiten, Sperrliste, Aufgaben -- Systemnahe Bereiche (Backup, System-Update, Plugins, API-Schlüssel, Webhooks, Postfächer, Ticket-Regeln, Ticket-Felder, Seiten, Einstellungen) gibt es bewusst nur in der Weboberfläche +- Systemnahe Bereiche (Backup, System-Update, Plugins, API-Schlüssel, Webhooks, Postfächer, Ticket-Felder, Seiten, Einstellungen) gibt es in der **Android-App** bewusst nicht; das **Windows-Programm** öffnet sie auf Wunsch im Browser (siehe [Weboberfläche aus dem Windows-Programm öffnen](#weboberfläche-aus-den-apps-öffnen)) + +**Android-App 3.x:** komplett neues Design (helle, runde Karten, Blau/Türkis, Dunkelmodus), schwebende Navigation (Start, Tickets, Chat, Kunden, Mehr) und „Mehr“ mit Kacheln für Aufgaben, Status, Benachrichtigungen und die Verwaltung nach Rechten. + +**Android-Widget (ab 3.1):** auf dem Startbildschirm in drei Größen. *Klein*: Meine offenen und Überfällige. *Mittel*: vier Kennzahlen und die drei wichtigsten Tickets als Nummern (Tipp öffnet das Ticket). *Groß*: zusätzlich „Neues Ticket“, „Alle Tickets“ und der eigene Status zum Umschalten. Überfälliges wird rot, im Dunkelmodus ist das Widget dunkel. Es zeigt bewusst keine Betreffs oder Kundennamen. Aktualisiert wird es nach Android-Vorgabe etwa alle 30 Minuten, beim Tippen auf ⟳, beim Öffnen der App und bei jeder Push-Nachricht. Die Statusknöpfe laufen über einen nicht exportierten Empfänger, andere Apps können den Status nicht ändern. **Push-Benachrichtigungen (Android):** Die Android-App zeigt Popups bei neuen Tickets, Kundenantworten und Zuweisungen, auch wenn sie geschlossen ist. Das läuft über Firebase Cloud Messaging (Google). @@ -1015,6 +1058,23 @@ Im Ordner `DeskHub-Webseite/` führt `php tests/run_all.php` alle PHP-Tests nach --- +## Demo-Video neu erzeugen + +Video und Bilder mit Beispieldaten entstehen aus einer eigenen Demo-Installation (SQLite, alles erfunden, keine Kundendaten). Nötig sind PHP 8.2, Node mit Electron (liegt in `desktop/node_modules`) und ffmpeg. Alle Befehle im Ordner `DeskHub-Webseite`: + +```bash +php tools/demo-video/seed_demo.php /pfad/zur/demo # Demo-Installation mit Beispieldaten anlegen +php -S 127.0.0.1:8097 -t /pfad/zur/demo & # Demo starten (Zugang: lena@demo.example / Demo-Passwort-1234) +../desktop/node_modules/.bin/electron tools/demo-video/capture.js /pfad/zu/bildern # Weboberfläche aufnehmen +../desktop/node_modules/.bin/electron tools/demo-video/capture_app.js /pfad/zu/bildern 50 # Windows-Programm aufnehmen +../desktop/node_modules/.bin/electron tools/demo-video/capture_titles.js /pfad/zu/bildern 1.0.28 # Titel- und Abspannbild +bash tools/demo-video/build_video.sh /pfad/zu/bildern docs/video # Video (mp4) und GIF-Vorschau bauen +``` + +Die Reihenfolge im Video ergibt sich aus den Dateinamen der Bilder. Die Bildunterschriften stehen in `capture.js` und `capture_app.js`. + +--- + ## Hilfe, etwas funktioniert nicht - **Admin-Protokoll** (Adminportal → Admin-Protokoll): Änderungen und fehlgeschlagene automatische E-Mails mit genauer Fehlermeldung.