## Chat Application Requirements

by Joshua Finkler and David Dao

### I. Introduction

This document explains the requirements for the Chat application for the ArsDigita Community System.

### II. Vision Statement

The chat application provides a mechanism for multiple users to post messages, associate user names with these messages, and display and update the last several messages so that chat visitors can follow the ongoing discussion. Such chat sessions need to be organized by topics so that users can find sessions relevant to their interests. The application should allow for multiple user as well as one-on-one sessions. Fine grain permissions customization should be available to keep information inaccessible to those users without appropriate authorization.

### III. System/Application Overview

The chat application will consist of a user, group administrator and site-wide administrator interface. Chat sessions will be separated into rooms. Messages posted to each room will be archived and stored in a database. This archival method will integrate with the ACS so as to allow a comprehensive overview of a particular chat user's posting history. Chat rooms will be able to be created and dropped in conjunction with the creation or dropping of user groups or other database structures. The application must be reliable and scalable.

### IV. Use-cases and User-scenarios

Saul Service-Employee wants to be able to interact with his customers over the Web while they are working on their computers, perhaps to help them diagnose their computer-related problems. He would like to be able to maintain several sessions simultaneously, so as to optimize his service efficacy. Saul would also like to be able to drop canned responses into a chat session when the customer asks a frequently asked question, thereby freeing up even more of his valuable time. By using the chat application to interact with his customers, Saul should be able to achieve each of these goals.

Bertha Bosslady wants to be able to keep tabs on the performance of service employees like Saul. By using the database backed chat application, Bertha should be able to ensure that has a complete record of Saul and his coworkers customer interactions. These records should also be able to be used to evaluate the legitimacy of future customer complaints or praises of Saul's performance. Aggregating the information found in these records should allow Bertha get a broad picture of the performance of her service team in general. Scraping these records should help Bertha identify frequently asked questions for which a canned response would be appropriate.

Chatty Cathy, a member of a role-playing fantasy community, wants to initiate a discussion with other gamers on the topic "Which is the better allegiance for cleric dwarves: chaotic good or lawful evil?" She should be able to search the site's chat rooms and find an appropriately entitled one, e.g., "Advanced Dungeons and Dragons". She should be able to join the chat discussion, post her question, get other interested nerds to respond, and have her desired discussion.

Edward Expatriate has moved far away from his homeland but still wishes to keep in touch with his friends and family. Long distance phone calls are out of the question due to their expense. Using the chat application, Ed should be able to set up scheduled chats or log on in the hope of an impromptu chat session with these people, thereby keeping in touch while keeping costs down.

The Conglomo Corporation has a scheduled guest chat with Dr. Erudite. The chat room is open to the public, however to prevent profanity and offensive question content, submitted questions do not go live immediately. Mark Moderator oversees the chat room and screens each question before approving them for inclusion in the chat. Since Dr. Erudite is the guest, all his answers and comments go live immediately. The day after the chat, Mark receives a request for a transcript of the chat from one of his site users who was unable to follow the chat live. Mark creates a transcript using a tool provided by the application which allows him to clean up some formatting issues and save it as a file. Now a nice properly formatted transcript of the chat with Dr. Erudite is available to each site member.

Carl Consumer could not find a product at Shop.com. Frustrated after spending the better part of an hour engaged in an unsuccessful search, Joe decides to leave the site and go to another competitive site. Just before doing so, he sees a link offering to allow him to chat with a customer service representative. He decides to give it one last try and so enters the chat and types "help!". The Shop.com representative is notified of the incoming message by an audio alert. Within the minute a Shop.com representative guides Joe to the product that he seeks.

### V. Related Links

- Chat application overview
- Chat application design document

### VI.A. Requirements: The Data Model

10 The Data Model

- 10.10 Chat Rooms

10.10.10 Chat rooms have unique display names within each instance.

10.10.20 Chat rooms have option to archive all chat messages or not archive.

10.10.30 Chat rooms have active and deactivate status.

10.10.40 Chat rooms have auditing information (creation user, creation date).

10.10.50 Chat rooms should be associated with permissions levels for message posting. "Moderated mode" chat room will be such that each message posted shall require approval from the administrator for that room before being accessible to other chat users. "Unmoderated mode" chat rooms will be such that messages posted to that room are immediately accessible to other chat users.

10.10.60 Chat rooms could either be private or public.

- All register users automaticly grant permission to enter and participate in public chat room.
- Users/groups must be explicitly grant permission to enter and particate in private chat room by a room admin.

10.10.70 Permissioning system to allow a group and/or single user to enter a chat room. This way will also implement banning certain user to a individual chat room.

10.10.80 Permissioning system to allow a group and/or single user to post a message to a chat room.

- 10.20 Chat messages

10.20.10 Each log message has auditing information.

10.20.20 The chat room to which a message belongs shall be identified.

10.20.30 A toggle value should be in place to indicate whether the message is in plain text or HTML format.

10.20.40 A toggle value should be in place to indicate whether the message has been approved by the moderator.

10.20.50 A private message never get log.

- 10.30 Chat transcripts

10.30.10 Each chat transcript has a display name.

10.30.20 Each chat transcript has a description.

10.30.30 Treat the whole transcript content as one big text file.

10.30.40 Permissioning system to allow who able to view the transcript.

### VI.B. Requirements: User Interface

- 20.10 Chat Administration Interface

20.10.10 Administrator should be able to create, edit, and delete a chat room.

20.10.20 Administrator should be able to delete all messages from a chat room.

20.10.40 Administrator should be able to add and remove moderators for a given room.

20.10.40 Administrator should be able to grant or revoke group/user privilege to a chat room.

20.10.50 Administrator should be able to active and deactivate a particular chat room.

20.10.60 Administrator should be able to create, edit and delete a chat transcript.

- 20.20 Moderator Interface

20.20.10 Moderator should be able to post messages directly in a moderated chat room without the need for moderator (self-) approval.

20.20.20 Moderator should be able to accept or reject messages from other users in the moderate chat rooms.

20.20.30 Moderator should be able to suspend or revoke chat privileges from chat room users.

- 20.30 Regular User HTML Interface

20.30.10 User should only be able to enter a public chat room accessible to this user's user group.

20.30.20 User should be able to automatically invite another user to join them in a chat room by supplying an email address.

20.30.30 User should be able to do a private chat with other user.

20.30.40 If a chat room is moderated, then the user's message will not go live immediately.

20.30.50 There is a refresh link to ensure they receive the latest messages.

20.30.60 The user should see all other users that post messages in the last specified number of minutes and all Java chatters.

20.30.70 Users should be able to chat privately with another user.

- 20.40 Regular User Java Interface

20.40.10 See a list of all Java chatters in the room and HTML chatters who post message within a specified number of minutes.

20.40.20 See a list of all chat rooms accessible by this user.

20.40.30 A different pop up windows for each private conversation.

20.40.40 User A could not has a private conversation with user B, if user B put user A on ignore list.

20.40.50 Optional audio alert for each new chat message.

20.40.60 Each user can have customize icon for his screen name.

20.40.70 Support smilie faces in chat area.

20.40.80 Able to ignore messages from a specific user.

20.40.90 Disallow duplicate screen name from Java chatter in the same chat room.

### VII. Revision History

Document Revision # | Action Taken, Notes | When? | By Whom?
--- | --- | --- | ---
0.1 | Created | 2000-10-03 | Joshua Finkler
0.2 | Revision for chat ACS 4.0 | 2000-11-08 | David Dao

Last modified: October 03 2000 12:00 PST 2000