# Appwrite Setup-Anleitung für WOMS 2.0 Diese Anleitung führt dich Schritt für Schritt durch die Einrichtung von Appwrite für dein Ticket-System. ## Schritt 1: Appwrite Account erstellen 1. Gehe zu [https://cloud.appwrite.io](https://cloud.appwrite.io) 2. Erstelle einen kostenlosen Account oder logge dich ein 3. Erstelle ein neues Projekt (z.B. "WOMS" oder "Ticket-System") ## Schritt 2: Projekt-Konfiguration 1. Öffne dein Projekt im Appwrite Dashboard 2. Gehe zu **Settings** → **General** 3. Kopiere deine **Project ID** (wird später in der `.env` Datei benötigt) ## Schritt 3: Datenbank erstellen 1. Gehe zu **Databases** im linken Menü 2. Klicke auf **Create Database** 3. Name: `woms-database` (oder ein anderer Name - muss dann in `.env` angepasst werden) 4. Kopiere die **Database ID** (wird später in der `.env` Datei benötigt) ## Schritt 4: Collections erstellen ### Collection 1: `workorders` 1. Klicke auf **Create Collection** 2. Collection ID: `workorders` 3. Name: `Work Orders` **Attribute hinzufügen:** | Attribut Name | Typ | Größe | Required | Array | Default | |--------------|-----|-------|----------|-------|---------| | `topic` | string | 255 | ✓ | - | - | | `title` | string | 255 | - | - | - | | `details` | string | 10000 | - | - | - | | `description` | string | 5000 | - | - | - | | `status` | string | 50 | ✓ | - | `Open` | | `priority` | integer | - | ✓ | - | `1` | | `type` | string | 50 | - | - | - | | `systemType` | string | 50 | - | - | - | | `responseLevel` | string | 50 | - | - | - | | `serviceType` | string | 50 | - | - | `Remote` | | `customerId` | string | 50 | - | - | - | | `customerName` | string | 255 | - | - | - | | `customerLocation` | string | 255 | - | - | - | | `assignedTo` | string | 50 | - | - | - | | `assignedName` | string | 255 | - | - | - | | `requestedBy` | string | 255 | - | - | - | | `requestedFor` | string | 255 | - | - | - | | `startDate` | string | 50 | - | - | - | | `startTime` | string | 10 | - | - | - | | `deadline` | string | 50 | - | - | - | | `endTime` | string | 10 | - | - | - | | `estimate` | string | 50 | - | - | - | | `mailCopyTo` | string | 255 | - | - | - | | `sendNotification` | boolean | - | - | - | `false` | | `approvalStatus` | string | 50 | - | - | - | | `woid` | string | 10 | - | - | - | | `createdAt` | datetime | - | - | - | - | **Hinweis zu WOID:** - `woid` = Work Order ID (5-stellig, z.B. "10000", "10001", etc.) - Wird automatisch vom System generiert - **WSID (Work Sheet ID)** ist NICHT Teil dieser Collection - siehe `worksheets` Collection! **Indexes erstellen:** - `status` (ASC) - `priority` (ASC) - `type` (ASC) - `customerId` (ASC) - `assignedTo` (ASC) - `woid` (ASC) - für schnelle WOID-Suche - `wsid` (ASC) - für schnelle WSID-Suche - `createdAt` (DESC) **Berechtigungen (Permissions):** - **Read**: `Any` (oder `Users` wenn nur eingeloggte Benutzer sehen sollen) - **Create**: `Users` (nur eingeloggte Benutzer können erstellen) - **Update**: `Users` (nur eingeloggte Benutzer können aktualisieren) - **Delete**: `Users` (nur eingeloggte Benutzer können löschen) ### Collection 2: `customers` (optional, für zukünftige Features) 1. Klicke auf **Create Collection** 2. Collection ID: `customers` 3. Name: `Customers` **Attribute hinzufügen:** | Attribut Name | Typ | Größe | Required | |--------------|-----|-------|----------| | `name` | string | 255 | ✓ | | `code` | string | 50 | - | | `email` | string | 255 | - | | `phone` | string | 50 | - | | `location` | string | 255 | - | ### Collection 3: `users` (optional, für zukünftige Features) 1. Klicke auf **Create Collection** 2. Collection ID: `users` 3. Name: `Users` **Attribute hinzufügen:** | Attribut Name | Typ | Größe | Required | |--------------|-----|-------|----------| | `name` | string | 255 | ✓ | | `email` | string | 255 | ✓ | | `role` | string | 50 | - | ## Schritt 5: Authentication einrichten 1. Gehe zu **Auth** im linken Menü 2. Aktiviere **Email/Password** als Auth-Methode 3. (Optional) Aktiviere weitere Auth-Methoden wie Google, GitHub, etc. ## Schritt 6: Storage Bucket (optional, für Datei-Uploads) 1. Gehe zu **Storage** im linken Menü 2. Klicke auf **Create Bucket** 3. Bucket ID: `woms-attachments` 4. Name: `WOMS Attachments` 5. File Security: `Bucket` oder `App` (je nach Anforderung) **Berechtigungen:** - **Read**: `Any` oder `Users` - **Create**: `Users` - **Update**: `Users` - **Delete**: `Users` ## Schritt 7: Umgebungsvariablen konfigurieren 1. Erstelle eine `.env` Datei im Root-Verzeichnis deines Projekts: ```env VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1 VITE_APPWRITE_PROJECT_ID=deine-project-id-hier VITE_APPWRITE_DATABASE_ID=woms-database ``` 2. Ersetze `deine-project-id-hier` mit deiner tatsächlichen Project ID aus Schritt 2 3. Ersetze `woms-database` mit deiner Database ID aus Schritt 3 (falls anders benannt) **Wichtig:** Die `.env` Datei sollte **NICHT** in Git committed werden. Sie ist bereits in `.gitignore` aufgeführt. ## Schritt 8: App starten 1. Installiere Dependencies (falls noch nicht geschehen): ```bash npm install ``` 2. Starte den Development-Server: ```bash npm run dev ``` 3. Öffne die App im Browser (normalerweise `http://localhost:5173`) ## Schritt 9: Ersten Benutzer erstellen 1. Gehe zur Login-Seite 2. Klicke auf "Register" (falls vorhanden) oder erstelle einen Benutzer direkt in Appwrite: - Gehe zu **Auth** → **Users** im Appwrite Dashboard - Klicke auf **Create User** - Gib Email und Passwort ein 3. Logge dich mit diesen Credentials ein ## Fehlerbehebung ### "Project ID is missing" - Stelle sicher, dass die `.env` Datei existiert und die richtige `VITE_APPWRITE_PROJECT_ID` enthält - Starte den Dev-Server neu nach Änderungen an der `.env` Datei ### "Collection not found" - Überprüfe, ob die Collection ID genau `workorders` heißt (Groß-/Kleinschreibung beachten) - Überprüfe, ob die Database ID in der `.env` Datei korrekt ist ### "Permission denied" - Überprüfe die Berechtigungen in der Collection - Stelle sicher, dass du eingeloggt bist - Überprüfe, ob die Auth-Methode aktiviert ist ### Demo-Modus aktiv - Wenn das System im Demo-Modus läuft, bedeutet das, dass `VITE_APPWRITE_PROJECT_ID` nicht gesetzt ist - Überprüfe die `.env` Datei und starte den Server neu ## Nächste Schritte Nach erfolgreicher Einrichtung kannst du: - Tickets erstellen, bearbeiten und löschen - Status und Priorität ändern - Tickets filtern und durchsuchen - (Optional) Dateien zu Tickets hochladen Viel Erfolg! 🚀