actions bereich und admin panel ueberarbeitet

und bug fix
This commit is contained in:
2026-03-15 21:19:49 +01:00
parent 9b9b8d39a8
commit 9a39120919
10 changed files with 659 additions and 116 deletions

134
LOCAL_SETUP.md Normal file
View File

@@ -0,0 +1,134 @@
# DefektTrack / AssetsTracker lokal starten (Schritt für Schritt)
## Voraussetzungen
- **Node.js** (z.B. v18 oder v20) [nodejs.org](https://nodejs.org)
- **Appwrite** entweder:
- **Appwrite Cloud**: [cloud.appwrite.io](https://cloud.appwrite.io) (kostenloser Account), oder
- **Appwrite lokal** mit Docker (siehe unten)
---
## Schritt 1: Abhängigkeiten installieren
Im Projektordner im Terminal ausführen:
```bash
npm install
```
---
## Schritt 2: Umgebungsvariablen einrichten
1. **Datei `.env` anlegen** (im Projektroot, neben `package.json`):
```bash
copy .env.example .env
```
(Unter Linux/macOS: `cp .env.example .env`)
2. **`.env` bearbeiten** und die Platzhalter ersetzen:
- **VITE_APPWRITE_ENDPOINT**
- Appwrite Cloud: `https://cloud.appwrite.io/v1`
- Lokal mit Docker: `http://localhost/v1` (oder deine Appwrite-URL)
- **VITE_APPWRITE_PROJECT_ID**
Projekt-ID aus der Appwrite Console (Projekt → Settings).
- **VITE_APPWRITE_DATABASE_ID**
Optional; Standard: `defekttrack_db`.
- **APPWRITE_ENDPOINT**
Gleich wie `VITE_APPWRITE_ENDPOINT` (wird nur für `npm run setup` genutzt).
- **APPWRITE_API_KEY**
API-Key aus Appwrite: Projekt → Settings → API Keys → „Create API Key“ (mit Scopes z.B. für Databases, Users, Teams).
**Wichtig:** Den Key nur für Setup verwenden und nicht im Frontend oder in Git committen.
- **ADMIN_SECRET** / **VITE_ADMIN_SECRET** (gleicher Wert)
Nur nötig, wenn du im Admin-Panel **Benutzer hinzufügen** nutzen willst. Beliebiges geheimes Token; das Backend prüft es beim Aufruf von `POST /api/admin/create-user`.
---
## Schritt 3: Appwrite-Projekt und Datenbank einrichten (einmalig)
Damit die App funktioniert, müssen Datenbank, Collections und ein Admin-User angelegt werden:
```bash
npm run setup
```
Das Skript legt u.a. an:
- Datenbank und Collections (locations, users_meta, lagerstandorte, assets, audit_logs)
- Teams (admin, firmenleiter, filialleiter, service, lager)
- Standard-Filiale „Hauptfiliale“
- Admin-User: **admin@defekttrack.local** / **Admin1234!**
Nach dem Setup den API-Key aus der `.env` entfernen oder durch einen eingeschränkten Key ersetzen, wenn du ihn nicht mehr brauchst.
---
## Schritt 4: Entwicklungsserver starten
```bash
npm run dev
```
Die App läuft dann z.B. unter **http://localhost:5173** (oder der in der Konsole angezeigten URL).
**Benutzer aus dem Admin-Panel anlegen:** Dafür muss zusätzlich der API-Server laufen (in einem zweiten Terminal):
```bash
npm run dev:api
```
Vite leitet Anfragen an `/api` an diesen Server weiter. In der `.env` müssen `ADMIN_SECRET` und `VITE_ADMIN_SECRET` (gleicher Wert) gesetzt sein.
---
## Kurzüberblick
| Befehl | Beschreibung |
|-------------------|--------------------------------------|
| `npm install` | Abhängigkeiten installieren |
| `npm run setup` | Appwrite-Datenbank & Admin einrichten (einmalig) |
| `npm run dev` | App lokal starten (Vite Dev-Server) |
| `npm run dev:api` | API-Server für „Benutzer hinzufügen“ (zweites Terminal) |
| `npm run build` | Produktions-Build erstellen |
| `npm run preview` | Build lokal ansehen |
---
## Optional: Appwrite komplett lokal mit Docker
Wenn du **keinen** Appwrite-Cloud-Account nutzen willst:
1. [Docker](https://www.docker.com/products/docker-desktop/) installieren.
2. Appwrite starten (offizielle Anleitung: [appwrite.io/docs/installation](https://appwrite.io/docs/installation)).
Beispiel mit Docker Compose im Projektordner:
```bash
curl -o docker-compose.yml https://appwrite.io/docker-compose.yml
docker compose up -d
```
3. Im Browser **http://localhost** (oder die angegebene URL) öffnen und ein neues Projekt anlegen.
4. In der `.env` eintragen:
- `VITE_APPWRITE_ENDPOINT` = `http://localhost/v1` (oder deine Appwrite-URL)
- `APPWRITE_ENDPOINT` = gleicher Wert
- `VITE_APPWRITE_PROJECT_ID` = ID des neu angelegten Projekts
- `APPWRITE_API_KEY` = API-Key aus dem Projekt (Settings → API Keys)
Dann wie oben **Schritt 3** (`npm run setup`) und **Schritt 4** (`npm run dev`) ausführen.
---
## Häufige Probleme
- **„Bitte APPWRITE_ENDPOINT, VITE_APPWRITE_PROJECT_ID und APPWRITE_API_KEY in .env setzen“**
→ `.env` anlegen (aus `.env.example`) und alle drei Werte eintragen.
- **CORS / Verbindungsfehler**
→ Endpoint-URL in `.env` prüfen (z.B. `https://cloud.appwrite.io/v1` ohne abschließenden Schrägstrich außer `/v1`). Bei lokalem Appwrite: korrekte Docker-URL und ggf. Host in Appwrite konfigurieren.
- **Login funktioniert nicht**
→ Nach `npm run setup` mit **admin@defekttrack.local** / **Admin1234!** einloggen. Bei Cloud: ggf. E-Mail-Verifizierung in den Appwrite-Projekteinstellungen anpassen.