# Employee Workflow - End-to-End Test Diese Anleitung führt dich durch den vollständigen Mitarbeiter-Workflow, vom Anlegen bis zur Ticket-Zuweisung. ## Voraussetzungen 1. ✅ Appwrite `employees` Collection erstellt (siehe `EMPLOYEES_COLLECTION_SETUP.md`) 2. ✅ Appwrite `workorders` Collection hat `assignedTo` Attribut 3. ✅ Collection IDs in `.env` und `src/lib/appwrite.js` eingetragen 4. ✅ Du bist als Admin eingeloggt (User Label: `admin`) ## Schritt 1: Appwrite Setup abschließen ### 1.1 employees Collection ID eintragen 1. Öffne Appwrite: `https://appwrite.webklar.com` 2. Gehe zu **Databases** → **woms-database** → **employees** 3. Kopiere die Collection ID (z.B. `694bd1fb002b2e583d14`) 4. Öffne `src/lib/appwrite.js` 5. Ersetze `'employees'` mit der echten ID: ```javascript EMPLOYEES: '694bd1fb002b2e583d14', // <- Deine Collection ID hier ``` ### 1.2 assignedTo Attribut zu workorders hinzufügen 1. Gehe zu **workorders** Collection (ID: `6943bf7d001901baa60c`) 2. Klicke auf **Attributes** → **Create Attribute** 3. Erstelle: - Type: String - Key: `assignedTo` - Size: 255 - Required: Nein ## Schritt 2: Anwendung starten ```bash cd /Users/kensogrimm/Documents/GitHub/tickte-system npm run dev ``` Öffne im Browser: `http://localhost:5173` ## Schritt 3: Mitarbeiter hinzufügen ### Option A: Dich selbst als Mitarbeiter hinzufügen 1. Gehe zu **Admin Panel** (Navigation → Admin) 2. Scrolle zur Sektion **Mitarbeiter** 3. Klicke auf **"Mich selbst hinzufügen"** 4. ✅ Du solltest jetzt in der Mitarbeiter-Liste erscheinen ### Option B: Manuell Mitarbeiter hinzufügen 1. Gehe zu Appwrite: `https://appwrite.webklar.com` 2. Öffne **Auth** → **Users** 3. Wähle einen Benutzer aus und kopiere die **User ID** (z.B. `6765fb5b00295d6c0a2c`) 4. Gehe zurück zum **Admin Panel** in deiner App 5. Scrolle zu **"Neuen Mitarbeiter hinzufügen"** 6. Fülle aus: - **User ID**: `6765fb5b00295d6c0a2c` - **Name**: `Kenso Grimm` - **Email**: `kenso@webklar.com` - **Kürzel**: `KNSO` 7. Klicke auf **"Mitarbeiter hinzufügen"** 8. ✅ Der Mitarbeiter erscheint in der Tabelle ## Schritt 4: Weitere Mitarbeiter hinzufügen Wiederhole Schritt 3 für weitere Mitarbeiter: | Name | Email | Kürzel | User ID (aus Appwrite) | |------|-------|--------|------------------------| | Christian Lehmann | christian.lehmann@example.com | CHLE | `[User ID aus Appwrite]` | | Dietmar Bruckauf | dietmar.bruckauf@example.com | DIBR | `[User ID aus Appwrite]` | | Dominik Armata | dominik.armata@example.com | DOAR | `[User ID aus Appwrite]` | | Gregor Vowinkel | gregor.vowinkel@example.com | GRVO | `[User ID aus Appwrite]` | ## Schritt 5: Kürzel zuordnen/bearbeiten 1. In der **Mitarbeiter-Tabelle** klicke auf **Edit** (Stift-Icon) 2. Ändere das **Kürzel** (z.B. von leer zu `KNSO`) 3. Klicke auf **Speichern** 4. ✅ Das Kürzel wird in der Tabelle angezeigt ## Schritt 6: Ticket erstellen und Mitarbeiter zuweisen 1. Gehe zu **Tickets** (Navigation → Tickets) 2. Klicke auf **"CREATE TICKET"** 3. Fülle das Formular aus: - **Customer ID**: Wähle einen Kunden - **Work Order Type**: z.B. `Supportrequest` - **Affected System**: z.B. `Network` - **Priority**: z.B. `Medium` - **Assigned To**: Wähle einen Mitarbeiter (z.B. `Kenso Grimm (KNSO)`) - **Topic**: z.B. `WLAN Problem beheben` - **Requested by**: z.B. `Max Mustermann` 4. Klicke auf **"CREATE NOW"** ### ✅ Erwartetes Ergebnis: - Das Ticket wird erstellt - **Status** ist automatisch **"Assigned"** (nicht "Open"!) - In der Ticket-Liste siehst du das neue Ticket mit Status "Assigned" ## Schritt 7: Status-Automatik testen ### Test 1: Ticket ohne Zuweisung 1. Erstelle ein neues Ticket 2. Lasse **Assigned To** auf **"Unassigned"** 3. Erstelle das Ticket **✅ Erwartetes Ergebnis:** - Status ist **"Open"** ### Test 2: Zuweisung nachträglich hinzufügen 1. Öffne ein Ticket mit Status "Open" 2. Weise einen Mitarbeiter zu (Edit-Funktion) 3. Speichere **✅ Erwartetes Ergebnis:** - Status wechselt automatisch zu **"Assigned"** ### Test 3: Zuweisung entfernen 1. Öffne ein Ticket mit Status "Assigned" 2. Entferne die Mitarbeiter-Zuweisung (setze auf "Unassigned") 3. Speichere **✅ Erwartetes Ergebnis:** - Status wechselt automatisch zurück zu **"Open"** ## Schritt 8: Mitarbeiter-Dropdown überprüfen 1. Öffne das **"CREATE TICKET"** Modal 2. Scrolle zum **"Assigned To"** Dropdown 3. Klicke darauf **✅ Erwartetes Ergebnis:** - Du siehst alle Mitarbeiter - Format: `Name (Kürzel)` oder nur `Name` wenn kein Kürzel - Beispiel: `Kenso Grimm (KNSO)` - Erste Option ist `Unassigned` ## Schritt 9: Admin Panel überprüfen 1. Gehe zu **Admin Panel** 2. Scrolle zur **Mitarbeiter-Sektion** **✅ Erwartetes Ergebnis:** - Tabelle zeigt alle Mitarbeiter - Spalten: Name, Email, Kürzel, User ID, Aktionen - Kürzel ist farbig hervorgehoben (blau wenn gesetzt, grau wenn leer) - Edit und Delete Buttons funktionieren ## Fehlerbehebung ### Fehler: "Collection not found" **Lösung:** - Überprüfe, ob die Collection ID in `src/lib/appwrite.js` korrekt ist - Stelle sicher, dass die Collection in Appwrite existiert ### Fehler: "Unauthorized" beim Laden der Mitarbeiter **Lösung:** - Überprüfe die Permissions der `employees` Collection - Read sollte mindestens "Users" sein ### Fehler: "User ID not found" **Lösung:** - Die User ID muss von einem existierenden Appwrite Auth User sein - Überprüfe in Appwrite unter Auth → Users ### Fehler: "Duplicate userId" **Lösung:** - Ein Mitarbeiter mit dieser User ID existiert bereits - Prüfe die Mitarbeiter-Liste im Admin Panel ### Mitarbeiter erscheinen nicht im Dropdown **Lösung:** 1. Überprüfe, ob Mitarbeiter im Admin Panel angezeigt werden 2. Prüfe Browser Console auf Fehler 3. Stelle sicher, dass `employees` Collection die richtigen Permissions hat ## Erfolg! 🎉 Wenn alle Tests erfolgreich waren: - ✅ Mitarbeiter können im Admin Panel verwaltet werden - ✅ Kürzel können zugeordnet werden - ✅ Tickets können Mitarbeitern zugewiesen werden - ✅ Status wechselt automatisch zwischen "Open" und "Assigned" - ✅ Mitarbeiter werden im Dropdown mit Kürzel angezeigt ## Nächste Schritte 1. **Weitere Mitarbeiter hinzufügen**: Füge alle Team-Mitglieder hinzu 2. **Kürzel-Konvention**: Lege ein einheitliches Format fest (z.B. erste 2 Buchstaben Vorname + 2 Buchstaben Nachname) 3. **Tickets zuweisen**: Weise bestehende Tickets Mitarbeitern zu 4. **Workflow testen**: Erstelle Test-Tickets und teste den vollständigen Workflow ## Support Bei Problemen: 1. Überprüfe die Appwrite Console auf Fehler 2. Prüfe die Browser DevTools Console 3. Lies `EMPLOYEES_COLLECTION_SETUP.md` für Setup-Details 4. Überprüfe die Permissions in Appwrite