201 lines
6.4 KiB
Markdown
201 lines
6.4 KiB
Markdown
# 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! 🚀
|