4.6 KiB
Executable File
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:
- Dashboard: Übersicht der wichtigsten Statistiken.
- Benutzer: Verwaltung von Benutzerkonten.
- Drucker: Hinzufügen, Bearbeiten und Verwalten von Druckern.
- Druckaufträge: Einsicht in alle Druckaufträge und deren Status.
- Einstellungen: Konfiguration der Anwendung.
- Ü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:
if (guard(user, IS_NOT, UserRole.ADMIN)) { redirect("/"); }
Nächster Schritt: => API-Endpunkte und deren Nutzung