The Java Mail Reader Requirements Document

Winter Quarter 1996
1/19/96

Document Author:

Joel Furnsinn

Project Sponsors:

GregoryAbowd
Ian Smith

The Just Another Version of Anarchy Team:

Brice Wilson (Manager)
Jay Bredenberg (Architect)
Aaron Sims (Programmer)
John Stevens (Programmer)
Joel Furnsinn (Technical Writer)


1.0 Project Description
2.0 Scenarios
2.1 The Computer Show
2.2 The Mailing List
2.3 The Multimedia File
3.0 Storyboard
4.0 Functional Requirements
4.1 Allow the User to Read Mail
4.2 Implement Physical Folders
4.3 Support for Messages in MIME Format
4.4 Support for Virtual Folders
5.0 Non-Functional Requirements
5.1 Fault Tolerance
5.2 Desk Top Like Environment
5.3 Acceptable Speed
6.0 Platform and Network Environment
7.0 Risk Assessment

1.0 Project Description

The idea behind this project is to build a mail reader that will function independently of the platform it is being used on. Ideally, the only thing that the user will need to run this mail reader is a browser capable of using Java applets. The user should be able to go to any computer available to him and, given a Java capable browser, read his mail.

This mail reader should also allow the user to organize his mail in an orderly way. We propose to allow the user to be able to sort his mail into multiple folders, and allow him to move his mail between the folders as he wishes.

In addition, because many files that are sent over the network are not simply text files, we propose to include a way to handle files in the MIME Internet standard format. Although what the extent of this support will be has not yet been determined, some mechanism for the handling of these files will be available.

Finally, we wish to try and make this mail reader original. We want to distinguish it from the readers already out there and try to create an original format for it. Although this may not be possible, after all there's only so much you can do with mail, we will certainly try to create something original.

This mail reader will be built on an existing toolkit called JavaIMAP which implements the Interactive Mail Access Protocol (IMAP) version 4. JavaIMAP will provide the direct interface to the mail server, so we will not have to worry about this aspect of the project.


2.0 Scenarios


3.0 Storyboard


4.0 Functional Requirements

The following functional requirements are listed in order of importance to the implementation of the project.

4.1 Allow the User to Read Mail

  1. Show the user the mail messages he currently has available
  2. Pull any messages the user requests off the server
  3. Display the requested message to the user

4.2 Implement Physical Folders

  1. Save messages to a physical folder from a server
  2. Allow the user to move mail between the different physical folders
  3. Allow the user to create/delete physical folders

4.3 Support for Messages in MIME Format

  1. Identify MIME files for the use with some sort of icon
  2. Allow the user to save the MIME file
  3. "Display" the MIME file for the user

4.4 Support for Virtual Folders

  1. Read in the configuration information from the user to the mail reader
  2. Sort the inbox into the configured folders for the user
  3. Allow the user to create/delete virtual folders
  4. Have the program mail the user's configuration to itself

5.0 Non-Functional Requirements

The following non-functional requirements are listed in order of importance to the implementation of the project.

5.1 Fault Tolerance

  1. Assure that deletion of mail doesn't occur until the program is explicitly told to do so
  2. Assure that mail designated for saving completes the save before it is deleted

5.2 Desk Top Like Environment

  1. Have the program create windows for messages and lists
  2. Have the program create descriptive icons for various folders

5.3 Acceptable Speed

  1. Have the program set a maximum for server response time

6.0 Platform and Network Environment

The J.A.V.A. mail reader has three requirements for use: Other than these requirements, the J.A.V.A. mail reader should be platform independent.

7.0 Risk Assessment

As of right now, we can identify two main risks assosciated with the creation of the J.A.V.A. mail reader. The first risk is whether or not we can implement all the things we want to do using the AWT functions in Java. The second risk concerns the amount of time that we have to do the project in and if we can implement everything we want in the allotted time. If these two risks can be dealt with, the project should come out well.
Link to the Java Mail Reader Project Notebook
Last Modified 1/28/96 -- Joel Furnsinn