Files
secu-backend/README.md
OpenClaw ee19e45171 🚀 Backend komplett implementiert
Features:
- Auth mit JWT + Argon2 (Login, Register, Refresh)
- Rollen-System (Chef/Disponent/Mitarbeiter)
- User Management mit Berechtigungen
- Aufträge mit Zuweisungen
- Verfügbarkeitsplanung
- Stundenzettel mit Foto-Upload Support
- Modulares System mit Config
- Entwickler-Panel Endpoints

Tech:
- Deno + Oak
- PostgreSQL
- CORS enabled
2026-02-20 15:12:06 +00:00

134 lines
3.5 KiB
Markdown

# SeCu Backend
Deno + Oak Backend für die SeCu Mitarbeiterverwaltung.
## Tech Stack
- **Runtime:** Deno
- **Framework:** Oak
- **Database:** PostgreSQL
- **Auth:** JWT + Argon2
## Setup
### 1. Datenbank einrichten
```bash
# PostgreSQL Container starten
docker run -d \
--name secu-db \
-e POSTGRES_USER=secu \
-e POSTGRES_PASSWORD=SeCu2026!SecureDB \
-e POSTGRES_DB=secu \
-p 5434:5432 \
postgres:16
# Migrations ausführen
psql -h localhost -p 5434 -U secu -d secu -f ../secu/db/migrations/001_initial_schema.sql
psql -h localhost -p 5434 -U secu -d secu -f ../secu/db/migrations/002_seed_modules.sql
```
### 2. Environment
```bash
cp .env.example .env
# JWT_SECRET ändern!
```
### 3. Starten
```bash
# Development (mit Watch)
deno task dev
# Production
deno task start
```
## API Endpoints
### Auth (`/api/auth`)
| Method | Endpoint | Beschreibung |
|--------|----------|--------------|
| POST | /register | Registrierung (erster User = Chef) |
| POST | /login | Login |
| POST | /refresh | Token erneuern |
| POST | /logout | Logout |
| GET | /me | Aktueller User |
| POST | /change-password | Passwort ändern |
### Users (`/api/users`)
| Method | Endpoint | Beschreibung | Rolle |
|--------|----------|--------------|-------|
| GET | / | Alle User | Chef: alle, Disponent: eigene MA |
| GET | /:id | User Details | - |
| POST | / | User anlegen | Chef/Disponent |
| PUT | /:id | User bearbeiten | - |
| DELETE | /:id | User deaktivieren | Chef/Disponent |
### Orders (`/api/orders`)
| Method | Endpoint | Beschreibung | Rolle |
|--------|----------|--------------|-------|
| GET | / | Alle Aufträge | MA: nur zugewiesene |
| GET | /:id | Auftrag Details | - |
| POST | / | Auftrag erstellen | Chef/Disponent |
| PUT | /:id | Auftrag bearbeiten | Chef/Disponent |
| DELETE | /:id | Auftrag löschen | Chef/Disponent |
| POST | /:id/assign | MA zuweisen | Chef/Disponent |
| DELETE | /:id/assign/:userId | Zuweisung entfernen | Chef/Disponent |
| PUT | /:id/assignment | Bestätigen/Ablehnen | MA |
### Availability (`/api/availability`)
| Method | Endpoint | Beschreibung |
|--------|----------|--------------|
| GET | / | Verfügbarkeiten |
| GET | /calendar | Kalender-Übersicht |
| POST | / | Verfügbarkeit melden |
| POST | /bulk | Mehrere Tage |
| DELETE | /:id | Eintrag löschen |
### Timesheets (`/api/timesheets`)
| Method | Endpoint | Beschreibung | Rolle |
|--------|----------|--------------|-------|
| GET | / | Stundenzettel | MA: nur eigene |
| GET | /:id | Details | - |
| POST | / | Einreichen | Alle |
| PUT | /:id | Bearbeiten | Nur pending + eigene |
| POST | /:id/review | Genehmigen/Ablehnen | Chef/Disponent |
| DELETE | /:id | Löschen | - |
| GET | /summary/:userId | Zusammenfassung | Chef/Disponent |
| POST | /upload | Foto hochladen | Alle |
### Modules (`/api/modules`)
| Method | Endpoint | Beschreibung | Rolle |
|--------|----------|--------------|-------|
| GET | / | Alle Module | Alle |
| GET | /org | Org-Konfiguration | Alle |
| POST | /:id/toggle | Ein/Ausschalten | Chef |
| PUT | /:id/config | Konfigurieren | Chef |
| GET | /check/:name | Status prüfen | Alle |
| GET | /developer/status | System-Status | Chef + Dev-Modul |
| GET | /developer/logs | Audit-Logs | Chef + Dev-Modul |
## Rollen
| Rolle | Kürzel | Berechtigungen |
|-------|--------|----------------|
| Chef | `chef` | Vollzugriff |
| Disponent | `disponent` | MA verwalten, Aufträge, Stundenzettel |
| Mitarbeiter | `mitarbeiter` | Eigene Aufträge/Verfügbarkeit/Stundenzettel |
## Port
Standard: `8004`
---
*SeCu Backend v1.0.0*