🚀 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
This commit is contained in:
134
README.md
134
README.md
@@ -1,3 +1,133 @@
|
||||
# secu-backend
|
||||
# SeCu Backend
|
||||
|
||||
SeCu Backend - Deno + Oak + PostgreSQL
|
||||
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*
|
||||
|
||||
Reference in New Issue
Block a user