CS190 Project Requirements Tim Neal (tneal) Project Name ------------ SIM: Sunlab Instant Messenger Problem ------- How to make a user friendly messaging system with a GUI that can be used by people in the Sunlab to communicate with team members or with friends that are logged on in the Sunlab. Overview -------- While some people may find that zwrite is the easiest way to communicate with friends and class members while working in the Sunlab, most will agree that it is not a very user-friendly program. Zwrite is simple to use, yet can be quite frustrating at times, such as when trying to delete unwanted characters in a message. The goal of this program is to set up a graphical, user-friendly instant messaging system that will replace zwrite as the preferred method of communication in the Sunlab. Setting up communication with buddy lists (including add user, drop user, and block user) and a user-friendly graphical interface is a must, and the ability to host chat rooms should be of high priority, as this would be quite useful to groups of programmers in the Sunlab that just could not sit together. Optional features can include buddy info, buddy icons, emoticons, warnings, and many other possible features. Target Users ------------ The target users for this program would be programmers working together in groups in the Sunlab (to allow them to communicate easily even if seated separately), as well as the casual user in the Sunlab who just wants an easy way to communicate with his or her friends. Requirements ------------ a) Must-have Features - Buddy List including the following features: (HIGH PRIORITY) - Add buddy - Adds a buddy to buddy list by typing in name or searching through matching criteria - Remove buddy - Removes a buddy from buddy list - Block buddy - Ignores all instant messages from a buddy - Should show the location of each buddy in the Sunlab - Should be able to group buddies into different groups - User-friendly GUI (HIGH PRIORITY) - Simple logon screen (just logon and password) - Simple, one-click buttons to send messages, add buddies, remove buddies, and block buddies - Several two-click menus to allow easy access to any of the implemented features - Separate windows for separate conversations - Should be allowed to configure window to the user's preference such as: - window size - background color - text font and size - Must have the ability to set different away messages when the user is not available - Chat room (HIGH PRIORITY) - Must have the ability to invite other users into the chat room, and to boot unwanted users - Should have list of all users in the chat room. - Sounds (MEDIUM/HIGH PRIORITY) - Have sounds alerting you to when a buddy signs on or signs off - Have sounds for sending and receiving instant messages b) Optional Features - Buddy information (MEDIUM PRIORITY) - Each user can be allowed to enter in personal information about him- or herself so that other users can read about them. - Sending files (MEDIUM PRIORITY) - Allow user to send and receive files - Buddy Icons (LOW/MEDIUM) - Users can have the ability to have a picture of their choice appear when they message a buddy - Emoticons (LOW/MEDIUM) - Either have hot-keys or simple buttons that allow a user to insert emoticons such as the classic smilie faces into a message - Warnings (LOW) - Add the ability to warn an annoying user - Users with a warn percentage over 100% should be knocked off the instant messaging system for a set period of time