File-Storage Application Requirements
by
Rob Storrs
I. Introduction
This document describes the requirements for an ACS File-Storage application.
The file-storage application allows individuals to place their files on a
publicly accessible web site and share some or all of them with
other members of that web community.
II. Vision Statement
Web communities are about sharing information. This information can
come in a variety of forms, text, images, executable files, in
addition to web pages. The file storage application should provide a
convenient way for users to share information in any of these
formats. Users should be able to determine which individuals or groups
should be allowed to read particular items and who should be allowed
to upload new versions. (This was initially done with permissions set
within the file-storage application but is now done using the ACS general
permissions application.)
Since information is only useful if you can find what you're looking for,
files in the file storage system should be searchable using site-wide
search. To facilitate this, files uploaded to this system are stored in
the database.
In addition to its use as a stand-alone user application, the
file-storage system can provide helper services to other ACS applications
that need a mechanism for managing uploaded files.
III. System/Application Overview
The File-Storage application will consist primarily of a user interface that
allows individuals to manage their file-storage folder(s) and to see
other people's publicly accessible files. There is also an
administrative interface that allows administrators to view and, if
necessary, edit/delete any user's files.
IV. Use Case and User Scenarios
Using File-Storage to Run a Project
In the course of her job at Acme Publishing Company,
Ursula
User is working with people from several different offices. In the
course of her work she needs to exchange pictures, Excel spreadsheets
detailing the cost estimates, and collaboratively write contracts
using Word. At any time, she and the other people she works with need
to be able to find the most current copy of each of these documents -
and be able to look at older versions if need be to track the
evolution of the project. With so much going on, Ursula also needs to
be able to find all the documents pertaining to a particular issue -
so will need a full-text search feature.
For each project, Ursula makes a folder on the file-storage system
and gives read, write, and edit permission to the group of people she
is working with for that project. Then she makes subfolders for each
of the tasks for that project and asks appropriate team members to
start uploading versions of the documents as soon as they have
completed drafts. She downloads the documents, makes edits, adds,
comments to them, etc. Then she uploads her new version to the same
folder. She and the other members of her team go back and forth with
this until they have a version they are satisfied with.
Occasionally, Ursula wants to ask someone outside the group their
opinion so she gives them read access to just one version of a file
so that they can download it and take a look. Sometimes production tasks change; if so, Ursula can rearrange the project's
sub-folder hierarchy to make it more closely reflect the new
organizational scheme.
Administer File-Storage
Occasionally in her rearranging, Ursula deletes something she later
regrets having lost. So she calls
Annie Admin to see if the
file can be recovered. Annie goes to the admin version of Ursula's
files and resurrects the correct file and all its versions so that
Ursula can use them again. While she is there, she notices that there
are two copies of the same enormous file uploaded one right after
another, both with the same title and comment. When she asks about it,
Ursula says sheepishly that she had forgotten that she had already
uploaded this version and had uploaded another copy of it. "Yes they are
exactly the same, and yes, the duplicate copy may be deleted." So Annie does this in order to reclaim some disk space.
V. Related Links
VI.A. Requirements: Data Model
10 The Data Model
10.1 each file should have a unique identifier
10.2 each version of a file should have a unique identifier
10.3 each file shall have an associated owner
10.4 permissions for files and versions will be handled by
the general permissions system
10.5 a user's set of files will be organized in a
hierarchical set of "folders" and "sub-folders"
10.6 each version of each file will have individual
read, write, comment, and administer permissions associated with it
10.7 to allow administrators to recover "deleted" files,
when a user asks for a file to be deleted, it is marked deleted_p =
't' but not deleted from the database
VI.B. Requirements: Administrator Interface
20 Administrator Interface
20.1 the administrator should be able to view all files in
the file-storage system
20.2 the administrator should be able to edit,
delete, or alter permissions for any file belonging to any user
20.3 so that the administrator can manage database space,
when he requests that a file be deleted, the file should really be
deleted, not just marked deleted-p = 't'
VI.C. Requirements: Developer Interface
30 Developer Interface
Any other application should be able to us the file storage
system to hold information in the form of uploaded, versioned, files
organized in a single or multi-level hierarchy. To support this, the
file storage application should:
30.1 provide a function for creating a new file
30.2 provide a function for uploading a new version of a file
30.3 provide functions for checking the read, write, and
edit permissions for any version of any file
30.4 provide a function for downloading any version of any file
N. B. items 1 & 2 are not currently implemented in a proceduralized
fashion. Items 3 & 4 are implemented as tcl procs or registered filters.
VI.D. Requirements: User Interface
40 User Interface
40.1 a user should be able to create folders and subfolders
in which he can place his files
40.2 a user should be able to add new files and new version
of files
40.3 a user should be able to move files to different
folders or sub-folders
40.4 a user should be able to delete folders and individual
files
40.5 a user should be able to download any version of any
of the files accessible to him
40.6 a user should be able to view and/or edit other user's files if
the owner has marked them public, or if the user has been granted
individual or group permission with access to the files
40.7 a user should be able to search the text of the
documents stored in the file-storage system (requires full-text search
capability from the database - in the case of Oracle, requires InterMedia)
VII. Revision History
Document Revision # |
Action Taken, Notes |
When? |
By Whom? |
0.1 |
Creation |
10/1/2000 |
Cynthia Kiser |
cnk@arsdigita.com