MultiUserChat is desktop chat application written in java using multithreading and socket programming using TCP/IP.
Application was written for Event-Driven Programming Course which covered topics related to writing interactive, multi threaded appliactions in Java.
System design of application can be represented by following diagram
In the above design we have one centralized server which handles multiple users. When user connects successfully to the server for the first time it gets its own thread which will handle its future queries.
Moreover server is connected to MySQL database which keeps user data such as: login, password and username.