Project 2 - Requirements
Overview
Your program will be a chat program with a graphical user interface.
Users of the chat system are identified by an unique string called a
handle. Before using the system a user must register her
handle with the server.
Your program must be capable of displaying two types of windows:
-
User List. Displays a list of the handles of all users who
are currently registered with the chat server. There only needs to be one
of these. The list must be automatically updated as new users register
with the server and registered users sign off.
-
Conversation Window. A window containing a current
conversation between two users. Your program must be capable of
handle multiple conversations at the same time. Each conversation
will be handled by a separate window.
Your program must be capable of performing the following actions:
-
When the program is started, the User List window should immediately appear.
-
There must be a simple way to start a conversation with another
user (or with yourself). Presumably this would be from the User List,
but that is up to you.
-
Your program should instantly notify the user when a remote user attempts to
start a chat session. You could do this by popping
up a window, or changing the user list in someway to indicate which user is
calling. The local user should have the option
of either accepting the invitation, denying the invitation, or ignoring it
all together.
-
After either #2 or #3 (accept) occurs, a window must
appear for the local user to enter text and view messages sent by both users.
Again, the exact format of this window, and how often
the text is updated, is up to you.
-
It must be possible to terminate a conversation from the conversation
window. Again you are free to choose how your program will
accomplish this, but it could be as simple as closing the conversation
window. Note that either user may terminate the connection at any time,
and that the program should inform the local user when the remote user
terminates the connection.
-
There must be a way to terminate the entire program. This would
include terminating all active conversations (gracefully) and closing
the window that contains the user list.
Note that your program must be capable of displaying and updating the user
list at the same time it is accepting incoming chat requests, and
initiating outgoing chat requests.
version 1.8, 2004/06/07 14:59:19, © by csfac@RIT. All rights reserved.