Algorithm Design and Analysis
Milestone 1: Software Assignment
Due 9 October
Submission Instructions
Create a single .zip archive containing the following components:
• For development tasks 1–3, please include .java files in the correct folder
format. Please ensure code files do not contain any non-English characters
(such as comments in Chinese) because my AUT computer cannot display
these characters. Worse, these code files do not compile for me.
• For development task 4, please create a short 2-4 minute video of the
demonstration in .mp4 format. Please ensure that the video file size is not
more than 30MB.
Please submit the .zip file on Blackboard→Assessment→Milestone 1.
Development tasks
The purpose of this assignment is to develop a client/server messaging system
where clients can connect to the server and use it to send messages to specified
clients.
The system should include the following components:
1. Server which maintains a list of clients that are currently connected (each
with a unique name) and passes messages from one client to another. It
should provide some mechanism for notifying clients when the server will
be terminating connections or when a client disconnects. It should also
demonstrate at least one design pattern. (15 marks)
2. Client Interface which is a GUI used to connect to the server and obtain
a list of other currently connected clients. It should enable a client to
send a text message to another chosen client via the server and display
the messages received from other clients. The list should update the GUI
whenever a new client connects to or disconnects from the server.
(15 marks)
1
3. Two Other Features such as user accounts, sending and receiving images,
utilising UDP for some communication, hidden connections via a password
whose presence is only known to the other hidden clients, or when the
server starts it sends e-mails to a list of addresses notifying them of the
IP address and port of the server. (15 marks)
4. Demonstration of features of the complete system using a screen-cast
video. The video should comment on the requirements listed in tasks
1–3 above. (5 marks)