prev next

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:

  1. 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.
  2. 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:

  1. When the program is started, the User List window should immediately appear.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.


prev next
version 1.8, 2004/06/07 14:59:19, © by csfac@RIT. All rights reserved.