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

A Quick Description of Virtual Folders

In our mail program we would like to create a way to sort incoming mail into different "virtual folders". Although a piece of mail will still physically be in the inbox, it will appear in a virtual folder instead of the inbox if the user defined sort sends that piece of mail to the virtual folder. This is the sorting that is talked about in the second scenario above.

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

4.2 Implement Physical Folders

4.3 Support for Messages in MIME Format

4.4 Support for Virtual Folders


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

5.2 Desk Top Like Environment

5.3 Acceptable Speed


6.0 Platform and Network Environment

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

7.0 Risk Assessment

As of now we can identify three major risks associated with the cration 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. Although AWT implements many of the windowing functions for us, it is unclear whether certain things are currently possible in Java (drag and drop is the example which brought up this concern). If there are certain things that are not available to us, then we must revise the interface for our mail reader to something that is implementable in AWT.

Another risk is the IMAP protocol that we will be using in our mail reader. The concern here is that there may be some bugs or incompatibilities in the IMAP code which will not allow us to do certain things. If this problem comes up, the first solution would be to contact Ian Smith and see if he can fix the problem. If Ian can not fix the problem in a timely manner, it may be necessary alter the function which depends on that part of IMAP.

The third risk is that Netscape will not be able to handle MIME files in the way we want it to. If there is no way to set up communication between Java and Netscape so that Netscape can handle the MIME files on its own, it will be necessary simply to save the files to disk. Although this is not as elegant a solution as we would like, it will still satisfy the requirements for the project.


Link to the Java Mail Reader Project Notebook
Last Modified 1/28/96 -- Joel Furnsinn