Jester Requirements Document

Winter Quarter 1996
1/29/96

Document Author:

Michael White

Project Sponsors:

GregoryAbowd
Ian Smith

Project Team:

Josh McCrary (Manager)
Zellyn Hunter (Architect)
Thierry Ways (Prog/Arch)
Roman Khramets (Programmer)
Michael White (Technical Writer)


Project Description of Target System

As our use of computers for work and communication becomes more pervasive, we find it increasingly difficult to achieve a consistency that is not affected by geography. At work, we tend to become familiar with one computer and its own specific operating system, programs, file structure and interface. However, once we're at home, we use a different computer, with a completely different environment; and we have to change our habits. When we're travelling away from both work and home, we may encounter even more unfamiliar systems. The purpose of our project is to provide an essential service, reading mail, completely independent of location. The target user population for this program is anyone with access to a Java-enabled web browser and an IMAP-compatible email account.

We hope to accomplish this by providing a fully functional mail reader that can be used almost anywhere, on a variety of systems. Written in Java, the mail reader will reside inside a page on the World Wide Web. All that will be needed to use this reader will be a Java-enabled browser and access to the Web.

To provide the remote functionality that such a mail reader needs, we will use the IMAP mail protocol, which allows remote mailboxes to be manipulated as easily as local ones. The IMAP protocol also supports multiple folders, so that related mail can be organized.

In keeping with the rest of the web, we would also like the program to support multi-media email messages, so that it will not be confined to text alone. To this end, we intend to add MIME support, so that a single email message can contain several sections, each of a different type.

Eventually, we would like to see all of the tools we use every day re-written so that they can be used in a uniform manner, independent of geographic location. Our mail reader will be a step in that direction, providing one of the simpler, but also most important, of these services.


Scenario descriptions

A user loads Netscape 2.0 on a Sun Sparcstation running SunOS 5.4. In the Netsite field at the top of the Netscape window, the user types in the address which takes him to the jester web page. Once there, Netscape loads the jester java applet. The message "Please wait while jester is loading" is displayed in the Netscape window. Once the applet has been loaded completely, a dialog box appears on the screen and the user types in the name of the host machine where his email is kept, his user name at that machine and his password. He clicks on the "Log In" button at the bottom of the dialog box; and jester tries to log in to the host machine specified using the IMAP protocol and the given user name and password. If this process failed, a small window would be displayed on the screen informing the user; and he could then click on the "Retry" button at the bottom of the window to bring back the login dialog box. However, the user's login is successful, and jester displays a small window that reads, "Please wait while reading mailbox information." After a few seconds, bars appear on the screen, separating the Netscape window (the part that displays the web page) into four partitions. The top left section contains three buttons, which read "Create mailbox", "Delete mailbox" and "Rename mailbox" (Hereafter this section will be referred to as the "mailbox commands frame"). The top right section contains buttons that read "Display message", "Delete message" and "Find..." (the "message commands frame). The section at the bottom left (the "mailbox display") contains several pictures of mailboxes in a column, with each mailbox's name underneath the graphic. The mailbox labelled "New mail" is the only box that is currently open. The bottom right section of the window (the "message list") displays a list of all the messages in the currently open mailbox. Each item on the list has the name of the Sender and the Subject of the message. There are currently five messages on the list. Item number 2 on the list has a small icon beside it which indicates that it contains a MIME standard encoded graphic. The user double-clicks on this message and a new window appears on the screen, displaying both the message text and, beneath that, the enclosed graphic. There are five buttons at the top of the window: "Reply to sender", "Reply to all recipients", "Display headers", "Find..." and "Close message". After reading the message text, the user clicks on the "Close message" button and the window with the message disappears from the screen. Back in the main jester window, the user highlights the message he just read by clicking on it on the message list. After the message is highlighted, he clicks on the "Delete message" button in the message commands frame. The message disappears from the list. The user then quits the Netscape application.

A student logs in to her mail server using jester. When the list of new mail is displayed, she notices that one of them is from one of the members of her CS 3302 programming team, the Javapalloozas. She chooses not to read it yet, deciding to save it to her Javapalloza mailbox instead. With the mouse, she clicks on the message, drags the mouse to the mailbox in the mailbox display and releases the mouse button. The message disappears from the message list (which is currently listing the messages in the open mailbox, "New mail"). To make sure that the message is there, she opens the Javapallooza mailbox by double-clicking on the respective graphic in the mailbox display. The message list changes to display the messages in the selected mailbox and includes the moved message. Relieved, the student quits Netscape.

Later that same day, the student logs in to her mail server again using jester. She wants to get a listing of all the messages that she has received from her best friend from high school, who attends a different college. She clicks on the "Find..." button on the message commands frame, and a dialog box appears on the screen. In the dialog there is a list of several search criteria that can be selected. She selects the name field with the mouse. In the dialog box, she types in the name of her best friend and clicks on a button at the bottom of the dialog which reads "Find." The dialog disappears, and after a few seconds the message list displays all of the messages found across all mailboxes that contain her best friend's name. The student clicks on the create mailbox button in the mailbox commands frame. A dialog box appears on the screen asking her to type in the name of the new mailbox. She types in her friend's name again and presses Return. A new mailbox appears in the mailbox display which automatically contains all of the messages in the message list.


Storyboarding

Functional Requirements

Reading E-mail Remotely

  • Uniform Interface

  • Location Independence

    The primary goal of the project is to enable a user to be able to read email remotely by simply accessing a web page. The application will be written in java and run using the IMAP protocol. There are two important divisions of this requirement: the user must be able to read his or her mail from anywhere, and the interface used to do so must remain constant. Our system will function anywhere as long as the user accesses our page using a Java-enabled version of netscape. Since it can be accessed from anywhere, the uniform interface will allow the user to become familiar with this method of reading mail.


    Multiple Mailboxes

  • Mailbox functions (create, delete, rename, etc.)

  • Message functions (move, delete, copy, etc.)

    The second priority of the project is to create a "virtual desktop", complete with multiple mailboxes. Users will be able to create mailboxes based on their own, personal requirements (such as a 3302 mailbox for software engineering students). Users will also be able to delete mailboxes once they become obsolete. Message functions will also be provided, allowing messages to be deleted, copied or moved from one mailbox to another. These functions will be implemented using a graphical, drag and drop procedure.


    MIME Support

  • Text

  • Sound

  • Images

    The mail reader will also have support for MIME encapsulated messages. A user will be able to read MIME messages in a "flat" format. The text is displayed first, then the picture, then the user has the option of hearing the sound.


    Search

  • Message Body Searches

  • Multiple Message Searching (with across mailbox ability)

    Lastly, the reader will be able to search for given strings in the message body. If a user received a message to multiple people and wanted to pick out the section that applied to him or her, they could perform a message body search for their name and the reader would jump right to that section. The reader will also contain a function for searching various messages by text strings, date, etc. This feature will be able to search the contents of multiple mailboxes, or only one, as the user desires.


    Non-Functional Requirements

    Usability/Speed

    The user should not have to have an extensive knowledge of computers to use our mail reader. Therefore, the only requirements will be familiarity with a web browser; although a basic understanding of multi-window, menu-driven applications will allow the user to make better use of all of the system's capabilities.

    The mail reader will keep the user informed of its actions, displaying a message and/or picture to indicate that the function is currently operating. (When the user is logging in, a "Logging in. Please, wait." message will appear inside the main window of the web browser, and so on.) The user should not have to wait more than 5 seconds before such a message indicates that, at the very least, the system is working; even though the load on the web or other circumstances may be slowing the system down.


    Fault tolerance

    In the event that the network connection is lost, the mail reader program will display an error message indicating that it is impossible to proceed with current user activities. In this situation, it is mandatory that the user is aware of what has occurred; so they know to quit the application and try to connect again.


    Security

    The level of security provided by a browser connection is comparable to that provided by a telnet connection and will suffice for our needs. Since IMAP includes provisions for secure, encrypted connections, support for encryption can be added.

    We are limited to the level of security provided by "telnet", "ftp" or "IMAP" protocols. A login name and password will allow access to individually owned mailboxes.


    Platform and Network Environment

    Platform independence, as well as independence from a particular network, is the key to efficiently using Java in an application. The mail reader requires a java-enabled browser (which itself requires graphics support and a fairly reliable Internet connection) and an IMAP daemon running on the remote system where the user's mail account is located (our program relies on the functions provided by the IMAP protocol). It is also desirable that the platform used has sound capabilities to make use of the mail reader's sound features written under MIME (although this is not essential).


    Risk Analysis

    The most serious risks involved in developing the Jester Mail Reader are centered around the limitations of IMAP functionality and the established environment that is currently available for Java. In determining goals, we considered what other mail readers lack and kept the importance of user-friendliness in an application aimed at a large and varied target group in mind. However, the ideal functions described, such as drag and drop, may not be possible in the environment we are using. It will be important to concentrate on the bare essentials that Jester requires to operate first, and add the sounds and extra graphic representations afterwards.



    Return to Jester Project Notebook Last Modified 1/28/96

    Go to version 1.0 of Requirements Document