Scooby2beDue Requirements Document
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:
- Storyboard 1 - a scanned version of the
first iteration storyboard.
- Storyboard 2 - a scanned version of the
second iteration storyboard.
- Storyboard 3 - a scanned version of the
third iteration storyboard.
- Storyboard 4 - a scanned version of the
fourth iteration storyboard.
Functional Requirements
The following requirements are listed in order by priority.
- Allow the management of to-do items list
- View items in a list
- Add items to the list
- Delete items in the list
- Edit items in the list
- Manage fields of a to-do item
- Item Description
- Due Date
- Start Date
- Priority (1-5 with 1 being highest priority)
- Group Association
- Manage Groups
- View group list
- Add a group to the group list
- Remove a group from the group list
- Change the name of a group (edit group name)
- Change affected to-do items based on group changes
- Sort To-Do Items (View Items in a Specified Order)
- Sort by primary field
- Sort by secondary field
- Manage Data Files
- Log in screen - name and password
- Establish telnet file i/o
- Load in old to-do items on startup
- Save session and current to-do items
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
- As Tech students, we will all occasionally be under significant pressure
in other classes which may impact performance in this project.
- There is always a chance that one or more of us will become ill or
otherwise unable to devote adequate attention to this project.
- Two of our members have significant jobs outside of this project and
other classes that may affect performance on this project.
- To address these potential problems, we have front-loaded our schedule
and set internal, artificial deadlines to allow for schedule slips that
may occur due to any of these or other, unforeseen problems.
- Hardware
- One of our programmers is unable to use the Java development tools
on his home computer, which may affect his ability to write and debug
his code. We have devised a workaround usable from the CoC, and we
hope that will be sufficient to support his development efforts.
- We do not yet have access to disk space on the internal CoC WWW server
(rossem). We do not expect this to be a problem, but we can use
ulc234.residence.gatech.edu or apts120.residence.gatech.edu if all
CoC options become unavailable.
- Data Loss
- It is unlikely, though possible that some or all of our files may be
inadvertently deleted or corrupted during the course of the quarter.
To guard against these potential problems, we have several copies of
all of our files on several machines, most of which are backed up
periodically.
Link to Scooby2beDue Project Notebook
Last Modified 4/21/96 -- Jon A. Preston
(Manager)