C1. Core Functionality
● Working server: server compiles and runs, able to accept concurrent connections from multiple clients.
● Working client compiles and runs. Client does not crash nor deadlock, client can connect to server and communicate by exchanging information.
● Multiple clients connecting concurrently, publishing messages, subscribing to channels, unsubscribing from channels. Clients should be able to
exchange at least 10 text-based messages without crash or deadlocks.
● Your client is able to attach multimedia files such as pictures. Receiving clients should be able to display(automatically without user intervention)
and download the attached files.
● GUI displays messages published on subscribed channels automatically(without user intervention).
C2. Quality of your GUI: Look and feel, intuitiveness, fewer clicks, etc.
C3. Demonstration: Demonstration via recorded video/screencast (not more than 15 minutes) of your prototype’s core functionalities and extensions (if
implemented) as well as the GUI.
● If you implement persistence, your server should be able to automatically retrieve persisted messages (including attachments) when killed.
● If you implement message searching or any other functionality, this should be demonstrated.
C5. README File