Veraltete Anleitungen entfernt, README neu

20 Einrichtungs- und Fix-Notizen vom Dezember 2025 beschrieben das alte
Appwrite (cloud.appwrite.io bzw. alte Projekt-IDs), zufällige WOIDs und
Felder, die es so nicht mehr gibt. Das README beschreibt jetzt den echten
Stand: Deploy über Branch test (Achtung: jeder gepushte Branch geht live),
Datenmodell in Kurzform und das Zusammenspiel mit Kundenportal und
ticket-integrations. LOCAL_DEV.md bleibt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-27 14:41:57 +00:00
1 parent df62bcbc55
commit 7852593a7a
22 files changed
+33 -2827

No files matched your search

+32 -41
View File
@@ -1,49 +1,40 @@
# WOMS 2.0 - Work Order Management System
# WOMS – Ticketsystem von WEBklar
React-basiertes Ticket-Management-System mit Appwrite Backend.
Internes Ticketsystem unter https://ticket.webklar.com: Tickets, Arbeitsblätter mit
Zeiterfassung, Kunden und Leads, Website-Projekte, Planboard und Rechnungen.
React/Vite im Browser, Daten in Appwrite (Projekt `6a1058610003c5a13a05`,
Datenbank `woms-database`, API unter `https://ticket.webklar.com/v1`).
## 🚀 Schnellstart
## Entwickeln und live stellen
### 1. Dependencies installieren
```bash
npm install
```
- Lokal starten: siehe [LOCAL_DEV.md](./LOCAL_DEV.md) (Vite-Proxy + `.env.local`).
- Live ist der Branch `test` im Gitea-Repo `JUSN/tickte-system`. Ein Push löst
auf dem Server Build und Deploy aus.
- Achtung: Der Webhook baut **jeden** gepushten Branch und stellt ihn live.
Feature-Branches deshalb nicht pushen; live geht es mit
`git push origin <branch>:test`.
### 2. Appwrite einrichten
## Datenmodell (Kurzfassung)
**Wichtig:** Für eine detaillierte Schritt-für-Schritt-Anleitung siehe [APPWRITE_SETUP.md](./APPWRITE_SETUP.md)
Datum speichert WOMS als Text `dd.mm.yyyy`, Uhrzeiten als `hhmm` (z. B. `0930`).
Kurzfassung:
1. Erstelle ein Appwrite-Projekt auf [cloud.appwrite.io](https://cloud.appwrite.io)
2. Erstelle eine `.env` Datei im Root-Verzeichnis:
```env
VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
VITE_APPWRITE_PROJECT_ID=deine-project-id-hier
VITE_APPWRITE_DATABASE_ID=woms-database
```
3. Folge der detaillierten Anleitung in `APPWRITE_SETUP.md` um die Datenbank-Struktur zu erstellen
| Collection | Inhalt | Wichtige Felder |
|---|---|---|
| `workorders` | Tickets | `woid` (fortlaufend ab 10000), `topic`, `details`, `status`, `priority`, `type` (Webpage, Migration, Project, Akquise), `serviceType`, `customerId`/`customerName`, `assignedTo`/`assignedName`, `requestedBy`, `startDate`/`startTime`/`endTime`, `deadline` |
| `worksheets` | Arbeitsblätter | `wsid` (fortlaufend ab 100000), `woid` + `workorderId`, `employeeId`/`employeeName`, `serviceType`, `oldStatus`/`newStatus`, `totalTime` (Minuten), `startDate`/`startTime`/`endDate`/`endTime`, `details`, `isComment`, `countsToPlan` (Abo-Stunden) |
| `customers` | Kunden und Leads | `code` (Kundennummer), `name`/`companyName`, `customerStatus` (z. B. lead, customer, lost), `archived`, Rechnungsadresse, `invoiceNinjaClientId`, Portal-Zugang |
| `employees` | Mitarbeiter | `userId` (Appwrite-Benutzer), `displayName`, `email`, `shortcode` (Kürzel) |
| `websiteProjects` | Website-Projekte und Vorschauen | `customerId` (steuert, was der Kunde im Portal sieht), `ticketId` (Ziel der Git-Push-Arbeitsblätter), Subdomain, Repo |
| `leads`, `leadPipeline`, `leadSettings` | Lead-Automatik | Recherche-Ergebnisse, Pipeline-Schritte, Sucheinstellungen |
| `roadmaps`, `roadmapNodes` | Projektpläne | Plan mit Schritten, verknüpft mit einem Ticket |
| `config` | Einstellungen | Prioritäten (dazu alte Listen, die nichts mehr liest) |
### 3. App starten
```bash
npm run dev
```
Zusammenspiel mit anderen Systemen:
Die App läuft dann auf `http://localhost:5173`
## 📚 Dokumentation
- **[APPWRITE_SETUP.md](./APPWRITE_SETUP.md)** - Detaillierte Anleitung zur Appwrite-Einrichtung
- Schritt-für-Schritt Setup
- Datenbank-Schema
- Berechtigungen
- Fehlerbehebung
## Features
- Ticket-Erstellung und -Verwaltung
- Status-Tracking (Open, Occupied, Assigned, Awaiting, Closed)
- Prioritäts-Management (Low, Normal, High, Critical)
- Filter und Suche
- Datei-Uploads
- Dashboard mit Statistiken
- Planboard für Terminplanung
- **Kundenportal** (project.webklar.com): legt bei jedem Git-Push ein Arbeitsblatt an
(`employeeId` `gitea`, `serviceType` `GIT`, ohne Beginn). Die Zeit wird in WOMS
nachgetragen, danach zählt sie als Arbeitszeit. Termine aus der Rechnungsanalyse
landen am Akquise-Ticket des Kunden und erscheinen im Planboard. Kunden-, Mitarbeiter-
und Projektverwaltung laufen über die Admin-API des Portals.
- **ticket-integrations** (`/api/integrations`): Proxy zu InvoiceNinja (Rechnungen)
und Paperless (Dokumente).