Simple chat client-server system using sockets. Create account, send text messages to other users or request information from server using commands: "/list", "/number", "/last". The whole conversation is logged in .txt files, one file for each day.
The client must be able to 1) send messages, 2) receive messages broadcasted to all clients and 3) request information from the server (not broadcasted to other clients, e.g. number of connected chatters, list of connected chatters or similar).
The application must:
-
use Sockets connecting client and server, with the server being multithreaded
-
use MVVM with at least two windows.
-
use the Observer design pattern.
-
use Multiton as a log to the server console and to file(s). It should always be possible to find all the communication for an entire day –text, ip address, date and time.
-
use the Factory method, e.g. for different kinds of objects to send between server and client.
Diagrams also available as .asta files.