Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat Server Application

Überblick

Dieses Projekt implementiert einen einfachen Chatserver, der grundlegende Funktionen wie Benutzerverwaltung, private Nachrichten und Chatrooms unterstützt. Der Server bietet eine RESTful-API für die Kommunikation und verwendet JSON für den Datenaustausch.


Installation und Nutzung

Voraussetzungen

  • Java 17 oder höher installiert.
  • Apache Maven installiert und im Systempfad verfügbar.

Projekt klonen und starten

  1. Repository klonen:
    git clone git@gitlab.fhnw.ch:furkan.aydin/chatproject.git
    cd chat-server
    
  2. Abhängigkeiten herunterladen und Projekt bauen:
    mvn clean install
    
  3. Starte die Anwendung mit folgendem Befehl::
    mvn exec:java -Dexec.mainClass="org.chatroom.server.Server"
    

Der Server wird standardmäßig auf Port 50001 gestartet.

  1. Testen der Verfügbarkeit des Server:
    curl http://localhost:50001/ping
    

Erwartete Antwort {"ping":true}

  1. Beispiel: Registriere einen neuen Benutzer:
    curl -X POST -H "Content-Type: application/json" \
     -d '{"username":"userx","password":"passwordx"}' \
     http://localhost:50001/user/register
    

Funktionen

Kernfunktionen

  • Benutzerverwaltung:
    • Registrierung neuer Benutzer
    • Benutzer-Login mit Token-basierter Authentifizierung
    • Status von Benutzern (online/offline) abfragen
  • Nachrichten:
    • Senden von privaten Nachrichten zwischen Benutzern
    • Empfang von Nachrichten über Abfragen (Polling)
  • Chatrooms:
    • Erstellen, Beitreten, Verlassen und Löschen von Chatrooms
    • Nachrichten an alle Mitglieder eines Chatrooms senden

Projektstruktur

src/
  main/
    java/
      org.chatroom.server/
        handlers/
          ChatHandler.java         # Verarbeitet Chat- und Chatroom-Anfragen
          PingHandler.java         # Verarbeitet /ping-Anfragen
          UserHandler.java         # Verarbeitet Benutzeranfragen
        Account.java               # Verwaltung von Benutzerkonten
        Client.java                # Verwalten eingeloggter Benutzer
        Chatroom.java              # Verwaltung von Chatrooms
        Server.java                # Hauptklasse, die den Server startet
        CleanupThread.java         # Entfernt inaktive Benutzer und abgelaufene Tokens
  test/                            # Unit- und Integrationstests
  resources/                       # Ressourcen-Dateien (falls vorhanden)

Autoren

Ece Kaya
Furkan Aydin
Philipp Dunkel

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages