Corp/README.de.md

122 lines
3.9 KiB
Markdown

**Sprache:** [English](README.md) | [Русский](README.ru.md) | [Deutsch](README.de.md) | [Español](README.es.md)
# EUSRR
EUSRR ist ein internes Unternehmensportal für Mitarbeiter, Anträge, Dokumente,
Beschaffung, Planung, Anwesenheit und Echtzeitkommunikation. Die aktuelle
Anwendung besteht aus einem Django/DRF-ASGI-Backend und einem Next.js-Frontend.
## Funktionen
- Mitarbeiterverzeichnis, Abteilungen, Positionen, Berechtigungen und optionale LDAP/AD-Synchronisierung;
- Anträge, Freigabeprozesse, Aufgaben und statusbezogene Benachrichtigungen;
- Dokumente, Anhänge, Kommentare und Bestätigungen;
- Beschaffung, Freigaberouten, Budgets und Inventar;
- Kalender, gemeinsame Ereignisse und Anwesenheitsanalyse über LogStorm;
- Chats, Reaktionen, Umfragen und Benachrichtigungen über eine authentifizierte WebSocket-Verbindung;
- Zustellung über WebSocket, E-Mail und Web Push.
## Stack
- Backend: Python 3.13, Django 5.2, Django REST Framework, Channels und Daphne.
- Daten und Jobs: PostgreSQL, Redis, Celery und Celery Beat.
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS, TanStack Table und Recharts.
- Integrationen: LDAP/Active Directory, Web Push und LogStorm.
- Tests: pytest/pytest-django, Node Test Runner, ESLint und Next.js Production Build.
Die festgelegten Versionen stehen in [`backend/requirements.txt`](backend/requirements.txt)
und [`frontend/package.json`](frontend/package.json).
## Dokumentation und Verträge
- [Dokumentationsindex](docs/README.md)
- [HTTP API](docs/guides/API.md)
- [LDAP und Active Directory](docs/guides/LDAP.md)
- [WebSocket und Realtime](docs/guides/WEBSOCKET.md)
- [Benachrichtigungen](docs/guides/NOTIFICATIONS.md)
Bei laufendem Backend sind Swagger unter `/api/docs/`, ReDoc unter
`/api/redoc/`, OpenAPI unter `/api/schema/`, WebSocket-Dokumentation unter
`/api/ws/docs/` und AsyncAPI unter `/api/ws/schema/` auf Port 8000 erreichbar.
## Repository-Struktur
```text
backend/ Django-Apps, REST API, Celery Tasks, Migrationen und Backend-Tests
frontend/ Next.js-Anwendung und Frontend-Tests
docs/ Gepflegte Leitfäden zu API, Integrationen, Betrieb und Entwicklung
```
## Lokale Entwicklung
Erforderlich sind Python 3.13, Node.js 20 oder neuer, PostgreSQL und Redis.
`backend/docker-compose.yml` startet nur eine Samba-AD-Testumgebung und ist kein
vollständiger Application Stack.
```bash
cp .env.example .env
```
Das Beispiel verwendet die Service-Hostnamen `db` und `redis`. Bei lokal
laufenden Diensten müssen `DB_HOST` und `REDIS_HOST` auf `127.0.0.1` geändert,
`DEBUG=True` gesetzt und gültige PostgreSQL-Zugangsdaten eingetragen werden.
LDAP ist im Beispiel deaktiviert.
Backend:
```bash
cd backend
python3.13 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python manage.py migrate
daphne -b 0.0.0.0 -p 8000 eusrr_backend.asgi:application
```
Celery für asynchrone Benachrichtigungen und andere Hintergrundaufgaben:
```bash
cd backend
celery -A eusrr_backend worker -l info
celery -A eusrr_backend beat -l info
```
Frontend:
```bash
cd frontend
cp .env.example .env.local
npm install
npm run dev
```
Die Anwendung ist unter `http://localhost:3000` erreichbar. Next.js leitet
Browser-HTTP-Anfragen an `NEXT_PUBLIC_BACKEND_URL` weiter; Realtime verwendet
den Backend-Endpunkt `/ws/`.
## Prüfung
```bash
cd backend
pytest
python manage.py check
```
```bash
cd frontend
npm test
npm run lint
npm run build
```
## Sicherheit und Daten
Umgebungsdateien, lokale Datenbanken, Uploads, Zertifikate, generierte Builds und
Abhängigkeiten werden von Git ignoriert. Produktionsdaten und Secrets dürfen
nicht eingecheckt werden.
Legacy-Einstellungen enthalten noch LDAP- und VAPID-Fallbackwerte. Außerhalb
einer isolierten Entwicklungsumgebung müssen alle Zugangsdaten per Environment
Variable überschrieben und alle jemals im Quellcode gespeicherten Schlüssel
rotiert werden. Prüfen Sie außerdem firmenspezifische Domains, Branding und DNs.