**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.