Scooby2beDue Requirements Document

Spring Quarter 1996
4/22/96

Document Author:

Jon A. Preston

Project Sponsors:

Gregory Abowd

Scooby2beDue Team:

Jon A. Preston (Tech Writer)
Ken Griggs (Architect)
Tony Saladino (Programmer)
Minh Ho (Programmer)
Jason Pierce (Manager)


Project Description of Target System

The Scooby2beDue To-Do List will support far more than the most basic to-do list functionality of adding and removing reminders of things that the user may need to accomplish. It will also allow users to include the date that each item is due, and set a priority for each one. The list may then be sorted and displayed based on priority (the default), due date or creation date. The applet will also support the concept of "groups", where list items may be separated into logical subsets or groups and then displayed sorted based on group. List items may be edited at any time to correct typos or to reflect changes in circumstances.

Click here to see the full Project Description.

Scenario descriptions

Scenario 1 - Adding an Item

The user starts a Java-compatible web browser and selects the URL for the Scooby2beDue To-Do List Manager. Once the applet has loaded, the user will be presented with a login dialog box, and he enters his username and password into it. The main screen will then appear with the current items that the user has to do. The user wants to enter in a new item into his to-do list, but first wants to set up a new group (he's just joined a project group and needs to keep track of all his obligations). The user clicks on the "group" button and a dialogue box appears listing all the current groups. The user enters in the group name "CS 3302" into the new-group box and clicks the "Add" button. The new "CS 3302" group is added to the groups list. The user clicks on the "OK" button, and the to-do page re-appears. The user enters "Do Requirements Doc" into the "Item" box, "4/22/96" into the "Due Date" box, "4/15/96" into the "Start Date" box, then selects "2" from the "Priority" drop down box and the newly defined group "CS 3302" from the "Group" box. Now that all the needed fields for a new to-do item have been entered, the user clicks the "Add" button and the item is added to the to-do list (inserted into the list based upon the default sort, by priority). Since the new item was of priority 2, all priority 1 items will appear before this new item, and all items with priority greater than 2 will appear after the new item. Once a new item is inserted into the to-do list, the text in the information boxes at the bottom of the screen remain, since the user might have other, similar items to enter. The user is now finished using the to-do manager, so he clicks the "Save" button, which saves his to-do list to the web server. The user then closes the web browser and the session is complete.

Scenario 2 - Editing an Item

The user starts a Java-compatible web browser and selects the URL for the Scooby2beDue To-Do List Manager. Once the applet has loaded, the user will be presented with a login dialog box, and he enters his username and password into it. The main screen will then appear with the current items that the user has to do. The user wants to edit an item in the to-do list. First, he selects an item in the list of to-do items. The user then clicks on the "Update" button and the item's text appears in the information boxes at the bottom of the screen. The user doesn't want the item at priority 2 anymore (the project was bumped back a week), so he selects "3" as the new priority. The user also needs to change the "Due Date", so he enters "4/29/96". Now that the user has made the changes he wants, he clicks on the "Refresh" button and the changed to the to-do item is reflected in the to-do list (since we are still using the default sort, i.e. by priority, the position of the changed item will be lower in the to-do list since we changed the priority from 2 to 3). Now the user wants to see all the to-do items associated with the "CS 3302" group. He then selects the "Primary" sort to be "Group". The ordering of the to-do items in the list now change to reflect a "by group" sort. The user scrolls down the list until he sees the "CS 3302" group items. Now he can change all the items' due dates and priorities as just described (by selecting, "updating", editing, and "refreshing" each of them). The user is now finished using the to-do manager, so he clicks the "Save" button, which saves his to-do list to the web server. The user then closes the web browser and the session is complete.

Scenario 3 - Deleting an Item

The user starts a Java-compatible web browser and selects the URL for the Scooby2beDue To-Do List Manager. Once the applet has loaded, the user will be presented with a login dialog box, and he enters his username and password into it. The main screen will then appear with the current items that the user has to do. The user wants to remove an item in the to-do list and a group from the group list. First he scrolls through the to-do items until he finds the one he wants to remove. Then he selects the item above the one he wants to delete and clicks the "Delete" button. A confirmation dialog box appears asking "Are you sure you want to delete this item?". The user selects the no button and the confirmation window disappears. The user then selects the item that he wanted to delete, presses the "Delete" button. Again the confirmation window appears, and the user selects "Yes". The item is removed from the to-do list. The user also wants to remove the group "CS 3156" from the to-do list manager. He selects the "Group" button, and the group dialogue box appears listing all the groups available. The user selects the "CS 3156" group from the list and clicks on the "Delete" button. A confirmation box appears, and the user selects "Yes". The "CS3156" group is removed from the list, and the program returns to the group page. The user clicks "OK" button, and the to-do page re-appears. All of the to-do items that did have group "CS 3156" now have empty groups (i.e. they are not associated with a group). The user is now finished using the to-do manager and closes the web browser. The session is complete. Although the user did not click the "Save" button, the information is still saved when the applet is closed.

Storyboarding

Here are links to four iterations of storyboards for the Scooby2beDue project:

Functional Requirements

The following requirements are listed in order by priority.
  1. Allow the management of to-do items list
  2. Manage fields of a to-do item
  3. Manage Groups
  4. Sort To-Do Items (View Items in a Specified Order)
  5. Manage Data Files

Some notes on the functional requirements

The to-do items list page is the integral part of the applet. Therefore, this is the most important requirement. The management of the to-do list and the to-do items will be done concurrently since they both rely on each other. This main page will be built unaware of file i/o at this point.

Then group management will be added such that the user can make new groups, remove old groups, and edit existing groups. The affects of the group changes to the to-do list items will be dealt with after the other items of group management are taken care of.

Sorting will be the third main requirement to be developed. The primary, then the secondary sort fields will be established, and then the to-do items list will reflect the selected sorts (i.e. the ordering or the to-do items will change according to the primary and secondary sorts).

Finally, all of the above will be made i/o aware so that a user can save his to-do list. Up until this point, the to-do list would be empty or filled with hard-coded information when the user starts the applet. After the implementation of file i/o, the user will log in to the system with his log in name and password, and the prgram will load their last session's information. The user will also be able to save his to-do list during or at the end of a session.

Non-Functional Requirements

The Scooby2beDue To-Do List Manager will emulate a telnet-protocol client to communicate back from the web browser to the WWW server. To properly communicate with the telnet-protocol daemon on the WWW server, the applet will have to conform to RFC 854 - Telnet Protocol Specification. This specifies the minimum requirements of a telnet-protocol client and a standard "DO, DON'T / WILL, WON'T" protocol for negotiating optional client or server functionality. The Scooby2beDue applet will only implement the minimum requirements as that is all that is needed to perform the file I/O on the server. RFC 854 will be used to generate a set of test cases including connection, option negotiation, synchronization and keepalives to verify that the applet adequately supports the minimum requirements described in RFC 854.

The following requirements affect the configuration of the server that will host the applet, and will be documented rather than evaluated or tested.

Due to security restrictions built into the Java language, no applet can access any machine over the Internet other than the WWW server from which it originated. Therefore, users of the Scooby2beDue To-Do List Manager must have telnet access to the WWW server that will serve the applet.

Finally, the Scooby2beDue To-Do List Manager will use a "virtual terminal" approach to interacting with the sever over the Internet. With this approach, the applet will simulate the user logging on to the server normally and will perform it's operations using UNIX commands - ksh and cat in particular. This restricts the WWW server to being some type of UNIX machine.

Platform and Network Environment

The Scooby2beDue To-Do List Manager will run on any host that supports Java 1.0.1 Applets including Netscape 2.0, HotJava, and the JDK appletviewer.

Each user's data will be stored in that user's home directory one the College of Computing filesystem in a file named ".todolist". Because the applet uses telnet to log into the WWW server based on the user ID and password given by the user, each user needs to have telnet access to the WWW server.

The name of the Web server providing the To-Do list service will be hard-coded into the applet, so the applet will need to be recompiled for use from other Web servers.

Risk Analysis

Personnel
Hardware
Data Loss

Link to Scooby2beDue Project Notebook
Last Modified 4/21/96 -- Jon A. Preston (Manager)