Es soll für ein Chatsystem ein Client – Serveranwendung geschrieben werden. Mit dieser können User untereinander Nachrichten austauschen.
- ER-Diagramm
- Klassendiagramm
- Anwendungsfalldiagramm (wäre riesig und extrem unübersichtlich geworden, Informationsgehalt wäre eher gering)
- Sequenzdiagramme
- Gantt-Diagramm
- Ein User kann einen Account erzeugen und sich anmelden.
- Ein User verfügt über eine „Freundesliste“ (Kontaktliste), wo er andere User erkennen kann.
- User können Nachrichten versenden
- User können Gruppen anlegen
- User können Gruppen beitreten und darin Nachrichten versenden
- eine Gruppe kann von einem Gruppenmitglied, welches über Gruppenadministratorenberechtigung verfügt verwaltet werden (löschen, umbenennen, Mitglieder entfernen)
- Nachrichten beinhalten arbiträre Daten
- Datentyp der Nachricht wird in Nachricht festgehalten
- Nachrichteninhalt wird vom Client interpretiert (Erweiterbarkeit)
- ein User hat einen Account (Autentifiziert sich mit E-Mail-Adresse und passwort); wird durch E-Mail-Adresse (oder id?) identifiziert
- ein User verfügt über eine Freundesliste; kann freunde mithilfe E-Mail-Adresse hizufügen
- ein User kann einem anderen User Nachrichten senden
- Verschlüsselung Socketverbindung
- Verschlüsselung Ende-Ende (Eigentlicher Nachrichteninhalt)
- Blockierung von Nutzern
- Lese-/Empfangsbestätigung
- "typing indicator"
- verification Mail
- auf Nachrichten antworten
- Reaktionen auf Nachrichten
- Hinzufügen von Notizen zu Nutzern
- Hinzufügen von Nicknamen zu Nutzern
- Eclipse (IDE)
- Visual Studio Code (Editor/IDE)
- IntelliJ (IDE)
- PlantUML (Diagram)
- Dia (Diagram)
- Astah (Diagram/Modeling)
- Gradle (Build Tool)
- plantuml-gradle-plugin (Sourcecode -> .puml)
- plantuml-gradle-plugin (.puml -> .svg/.png/...)
- MariaDB Connector (JDBC connector)
- MigLayout (Swing Layout Manager)
- JavaFX (Java Client Application Platform)
- fontawesome
- Scenebuilder (JavaFX Layout Manager, integriert in IntelliJ)