Projektbeschreibung
ÜbersetztTechnisch erwarten wir WebSocket-Transport für die Live-Zustellung mit einer angemessenen Fallback-Option und automatischer Wiederverbindung bei Verbindungsverlust. Nachrichten müssen in der Datenbank gespeichert werden, damit der Chatverlauf korrekt geladen wird, wenn ein Gespräch wieder geöffnet wird, und die Zustellung sollte geordnet und dedupliziert sein, selbst bei instabilen Netzwerken. Wir benötigen einen Schreibindikator, 'zugestellt' und 'gelesen' Status für jede Nachricht, ungelesene Zähler pro Chat und Anwesenheit (online, zuletzt gesehen). Anhänge sind wichtig: Nutzer sollten in der Lage sein, Bilder und Dokumente mit Vorschauen und sicheren Größenbeschränkungen zu senden. Wenn der Empfänger offline ist oder der Tab geschlossen ist, wird eine Push-Benachrichtigung sie auf die neue Nachricht aufmerksam machen. Das Backend sollte sich auf unsere aktuellen Benutzerkonten und Zugriffsberechtigungen stützen, anstatt ein separates Authentifizierungssystem einzuführen.
Wir betrachten Sicherheit und Missbrauchsprävention als Teil der Aufgabe: authentifizierte Socket-Verbindungen, die an aktive Sitzungen gebunden sind, Berechtigungsprüfungen (ein Nutzer liest nur Threads, an denen er teilnimmt), Eingabesäuberung gegen XSS beim Anzeigen von Nachrichten und grundlegende Ratenbegrenzung gegen Spam. Wir erwarten sauberen, dokumentierten Code in unserem aktuellen Stack, kurze Integrationsanweisungen und Tests für die Hauptszenarien.
— Private und Gruppenchats mit Teilnehmerverwaltung
— WebSocket-Zustellung mit Wiederverbindung und Offline-Fallback
— Schreibindikator, Zustell-/Lese-Status, ungelesene Zähler, Anwesenheit
— Bild- und Dokumentenanhänge mit Vorschauen und Größenbeschränkungen
— Push-Benachrichtigungen für offline Empfänger
— Verlauf, Ordnung, Deduplizierung und Nachrichtenpersistenz
— Sitzungsgebundene Sockets, Berechtigungsprüfungen pro Thread, XSS-Schutz, Ratenbegrenzung