# Functional Requirements ## R001 - Benutzerkonto erstellen **Description:** Ein Benutzer soll sich mit einem eindeutigen Benutzernamen registrieren können. **Priority:** Mittel **Acceptance Criteria:** Die Registrierung funktioniert nur, wenn der Benutzername noch nicht vergeben ist. ## R002 - Anmeldung **Description:** Benutzer sollen sich mit ihrem Benutzernamen und Passwort anmelden können. **Priority:** Mittel **Acceptance Criteria:** Nur gültige Benutzerdaten erlauben eine Anmeldung. Bei falschen Daten erscheint eine Fehlermeldung. ## R003 - Nachricht senden **Description:** Benutzer können Nachrichten an andere Benutzer oder Channels senden. **Priority:** Hoch **Acceptance Criteria:** Nachricht erscheint im Chatfenster des Empfängers oder im Channel. ## R004 - Nachrichten empfangen **Description:** Nachrichten werden empfangen, auch wenn der Empfänger zum Zeitpunkt des Sendens offline war. **Priority:** Hoch **Acceptance Criteria:** Benutzer erhalten eingehende Nachrichten automatisch oder beim nächsten Login. ## R005 - Channel erstellen **Description:** Benutzer können neue Channels (Gruppenräume) anlegen. **Priority:** Mittel **Acceptance Criteria:** Channel wird in der Übersicht angezeigt und kann von anderen beigetreten werden. ## R006 - Channel beitreten / verlassen **Description:** Benutzer können bestehenden Channels beitreten oder sie verlassen. **Priority:** Mittel **Acceptance Criteria:** Benutzer kann einem Channel über einen Befehl oder Menüeintrag beitreten oder ihn verlassen. ## R007 - Fehlermeldungen **Description:** Das System zeigt eine Fehlermeldung an, wenn ein technischer Fehler oder falsche Eingabe auftritt. **Priority:** Hoch **Acceptance Criteria:** Fehler werden dem Benutzer lesbar angezeigt (z. B. „Verbindung verloren“, „Benutzername existiert bereits“). ## R008 - Offline-Nachrichten speichern **Description:** Das System speichert Nachrichten, wenn der Empfänger offline ist und stellt sie beim nächsten Login zu. **Priority:** Hoch **Acceptance Criteria:** Offline-Nachrichten werden zuverlässig beim Login angezeigt. ## R009 - Nachrichten löschen **Description:** Nachrichten werden beim Abmelden automatisch gelöscht, sodass beim nächsten Login keine alten Nachrichten sichtbar sind. **Priority:** Hoch **Acceptance Criteria:** Nach dem Abmelden ist der Chatverlauf leer.