# **Detaillierte Dokumentation des Admin-Dashboards** In diesem Abschnitt werde ich die Funktionen und Nutzung des Admin-Dashboards genauer beschreiben, einschließlich der verschiedenen Module, Diagramme und deren Zweck. --- ## **1. Überblick über das Admin-Dashboard** Das Admin-Dashboard ist der zentrale Verwaltungsbereich für Administratoren. Es bietet Funktionen wie die Verwaltung von Druckern, Benutzern und Druckaufträgen sowie detaillierte Statistiken und Analysen. ### **1.1. Navigation** Das Dashboard enthält ein Sidebar-Menü mit den folgenden Hauptbereichen: 1. **Dashboard:** Übersicht der wichtigsten Statistiken. 2. **Benutzer:** Verwaltung von Benutzerkonten. 3. **Drucker:** Hinzufügen, Bearbeiten und Verwalten von Druckern. 4. **Druckaufträge:** Einsicht in alle Druckaufträge und deren Status. 5. **Einstellungen:** Konfiguration der Anwendung. 6. **Über MYP:** Informationen über das Projekt und den Entwickler. Die Sidebar wird in der Datei `src/app/admin/admin-sidebar.tsx` definiert und dynamisch basierend auf der aktuellen Seite hervorgehoben. --- ## **2. Funktionen des Admin-Dashboards** ### **2.1. Benutzerverwaltung** - **Datei:** `src/app/admin/users/page.tsx` - **Beschreibung:** Ermöglicht das Anzeigen, Bearbeiten und Löschen von Benutzerkonten. - **Funktionen:** - Anzeige einer Liste aller registrierten Benutzer. - Bearbeiten von Benutzerrollen (z. B. „admin“ oder „user“). - Deaktivieren oder Löschen von Benutzerkonten. --- ### **2.2. Druckerverwaltung** - **Datei:** `src/app/admin/printers/page.tsx` - **Beschreibung:** Verwaltung der Drucker, einschließlich Hinzufügen, Bearbeiten und Deaktivieren. - **Funktionen:** - Statusanzeige der Drucker (aktiv/inaktiv). - Hinzufügen neuer Drucker mit Namen und Beschreibung. - Löschen oder Bearbeiten bestehender Drucker. --- ### **2.3. Druckaufträge** - **Datei:** `src/app/admin/jobs/page.tsx` - **Beschreibung:** Übersicht aller Druckaufträge, einschließlich Details wie Startzeit, Dauer und Status. - **Funktionen:** - Filtern nach Benutzern, Druckern oder Status (abgeschlossen, abgebrochen). - Anzeigen von Abbruchgründen und Fehlermeldungen. - Sortieren nach Zeit oder Benutzer. --- ### **2.4. Einstellungen** - **Datei:** `src/app/admin/settings/page.tsx` - **Beschreibung:** Konfigurationsseite für die Anwendung. - **Funktionen:** - Ändern von globalen Einstellungen wie Standardzeiten oder Fehlerrichtlinien. - Download von Daten (z. B. Export der Druckhistorie). --- ## **3. Statistiken und Diagramme** Das Admin-Dashboard enthält interaktive Diagramme, die wichtige Statistiken visualisieren. Hier einige der zentralen Diagramme: ### **3.1. Abbruchgründe** - **Datei:** `src/app/admin/charts/printer-error-chart.tsx` - **Beschreibung:** Zeigt die Häufigkeit der Abbruchgründe für Druckaufträge in einem Balkendiagramm. - **Nutzen:** Identifiziert häufige Probleme wie Materialmangel oder Düsenverstopfungen. --- ### **3.2. Fehlerraten** - **Datei:** `src/app/admin/charts/printer-error-rate.tsx` - **Beschreibung:** Zeigt die prozentuale Fehlerrate für jeden Drucker in einem Balkendiagramm. - **Nutzen:** Ermöglicht die Überwachung und Identifizierung von problematischen Druckern. --- ### **3.3. Druckvolumen** - **Datei:** `src/app/admin/charts/printer-volume.tsx` - **Beschreibung:** Zeigt das Druckvolumen für heute, diese Woche und diesen Monat. - **Nutzen:** Vergleich des Druckeroutputs über verschiedene Zeiträume. --- ### **3.4. Prognostizierte Nutzung** - **Datei:** `src/app/admin/charts/printer-forecast.tsx` - **Beschreibung:** Ein Bereichsdiagramm zeigt die erwartete Druckernutzung pro Wochentag. - **Nutzen:** Hilft bei der Planung von Wartungsarbeiten oder Ressourcenzuweisungen. --- ### **3.5. Druckerauslastung** - **Datei:** `src/app/admin/charts/printer-utilization.tsx` - **Beschreibung:** Zeigt die aktuelle Nutzung eines Druckers in Prozent in einem Kreisdiagramm. - **Nutzen:** Überwacht die Auslastung und identifiziert ungenutzte Ressourcen. --- ## **4. Rollenbasierte Zugriffssteuerung** Das Admin-Dashboard ist nur für Benutzer mit der Rolle „admin“ zugänglich. Nicht berechtigte Benutzer werden auf die Startseite umgeleitet. Die Zugriffssteuerung erfolgt durch folgende Logik: - **Datei:** `src/app/admin/layout.tsx` - **Funktion:** `validateRequest` prüft die Rolle des aktuellen Benutzers. - **Umleitung:** Falls die Rolle unzureichend ist, wird der Benutzer automatisch umgeleitet: ```typescript if (guard(user, IS_NOT, UserRole.ADMIN)) { redirect("/"); } ``` Nächster Schritt: [=> API-Endpunkte und deren Nutzung](./API.md)