Corp/README.de.md

3.9 KiB

Sprache: English | Русский | Deutsch | Español

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 und frontend/package.json.

Dokumentation und Verträge

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

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.

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:

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:

cd backend
celery -A eusrr_backend worker -l info
celery -A eusrr_backend beat -l info

Frontend:

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

cd backend
pytest
python manage.py check
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.