Download Requirements
by
Alan Dickens.
I. Introduction
This document explains the requirements for the Download application
for the ArsDigita Community System. The Download application provides
a system to offer users the capability to obtain files from the web
server. These files can be of any format, and different versions of
each file can be easily maintained by the site administrator.
II. Vision Statement
A publisher of reports or software would like to be able to ask "Who has
downloaded any version of Bloatware 2000?" or to say "Spam everyone who
downloaded Bloatware 2000 v2.3 and tell them to upgrade to the new
exciting 3.0 version". Similarly, a publisher might wish to
charge for downloading or limit downloading to registered
members of a group.
The Download Application offers these capabilities to the site
administrator. It also offers users of the site a simple mechanism
via which to obtain software or reports. Users can by default
access the most recent version(s) of each file but can optionally search
through older versions.
III. System/Application Overview
The Download application consists of:
- User pages, which allow the user to:
- view the most recent version(s) of a file available for download
- view older versions of a file available for download
- fill out any forms necessary to qualify to download a file
- actually download a file
- Administrator pages, which allow the administrator to:
- add new "downloadables" (sets of files available for download)
- update the version of downloadables already created
- update information associated with each downloadable
- change rules associated with different versions of a downloadable
(rules allow control of visibility, availability, price, and currency
on a per version basis)
- view reports regarding the downloading of files
- remove either an entire downloadable or a single version of that downloadable
IV. Use-cases and User-scenarios
Danny Developer is interested in working at the hot new open source
software company, Bloatsoft. As part of preparing for the interview,
she decides to download their most recent release to better learn what
technologies Bloatsoft uses, how well their software is documented, etc.
The Download application offers her a choice of either the most recently
released full version or the beta release of the next version. She downloads
both to her local machine, and by examining them is better able to determine
the technical directions that Bloatsoft is presently emphasizing. Armed
with this knowledge, she gets a job offer, but from examining their software
knows that their software engineering practices aren't up to industry
standard, so she uses the job offer to negotiate a raise with her current
employer.
Paul Publisher is an analyst who maintains an industry report that
is regularly updated. He wants to be able to offer his regular paid
subscribers access to all versions of his report; offer others the
most recent report for a small fee (and collect their email addresses);
and offer back reports for free as a teaser to the general public. The
Download system allows him to specify a group of registered users (his
subscribers) who have unlimited access to all reports; the ability to
charge others for a copy of the most recent report; and the option to
make old versions of his report publicly accessible for no fee at all.
Using the Download application also makes it easy for Paul to collect
the email addresses of everyone who accesses his reports. Paul
eventually sells his database of user data to a large conglomerate
and retires to PI island.
Erica Executive manages the online training arm of a large company. As
part of spinning her business unit out into a seperate company, her
managers need to know how many web users have accessed the various
free and paid versions of the company's training courses. Her managers
would also like to better understand their customer base, and so ask
Erica what the courses are being used for. Erica is easily able to
obtain this information by using the reporting facility in the
Download application, which informs her not only who has accessed
which course, but why they chose to download the course. She can examine
this data by general course, specific version of each course, date, and
user. Armed with this information, she negotiates additional stock
options as well as a Ferrari 360 Modean as a company car.
Competitive Analysis
Many existing sites implement similar functionality with a FTP
(File Transfer Protocol) server. FTP provides a convenient
mechanism for transfering files, but provides none of the
versioning, descriptive, adminstrative, or reporting features
present in the Download application.
V. Related Links
VI.A Requirements: Data Model
10 The Data Model
- 10.10 Downloads (a collection of different versions of the same file)
10.10.10 Downloads have display names (e.g. "Bloatware 2000")
10.10.20 Downloads have group and scoping permissions association with them
10.10.30 Downloads have a filesystem directory in which their files reside
10.10.40 Downloads have a description of the contents of their files
10.10.50 Downloads store their create date and user
- 10.20 Download versions
10.20.10 Each version is associated with a Download
10.20.20 Each version has its down release date
10.20.30 Each version has a custom filename as served to a user
10.20.40 Each version has a description of that version
10.20.50 Each version has a status (including promote, offer if asked, and removed)
10.20.60 Each version stores the date and user that created it
- 10.30 Download rules
10.30.10 Each rule is associated with either a version of a download or
all versions of a download
10.30.20 Each rule specifies visibility (who is allowed to see it)
10.30.30 Each rule specifies availability (who is allowed to download it)
10.30.40 A rule may optionally include a price and currency
- 10.40 Download log
10.40.10 A log entry references a particular version of a download
10.40.20 A log entry references the user_id of the downloading user
10.40.30 A log entry stores the date of and ip address from which the download
took place
10.40.40 A log entry remembers the reason the user specified for why
they downloaded the version
20 User Interface
- 20.10 Download Administration Interface
20.10.10 Administrator should be able to view a list of all downloads
20.10.20 Administrator should be able to add a new download,
specifying information about that download
20.10.30 Administrator should be able to view information about the download
20.10.40 Administrator should be able to edit information about the download
20.10.50 Administrator should be able to remove a download
20.10.60 Administrator should be able to add a new version of a file to a download
20.10.70 Administrator should be able to remove a version of a file from a download
20.10.80 Administrator should be able to see all versions of a file in a download
20.10.90 Administrator should be able to add rules regarding either entire download or individual files in download
20.10.100 Administrator should be able to view reports regarding who has downloaded which versions of what files for what reasons
20.10.110 Administrator should be able to SPAM all users who have downloaded any version of a specific version of a downloadable
- 20.20 Regular User Interface
20.20.10 User should be able to view a list of available downloads
20.20.20 User should have access to information about each download
20.20.30 User should be able to easily identify the most recent version of each download
20.20.40 User should be able to view older (but still available) versions of each download
20.20.50 User should have access to descriptive information about each version of
a download
20.20.60 User should be able to specify why they want to download a particular file
20.20.70 User should be able to download the version of a file of their choice
Implementation Notes
The Download application is one of the oldest modules in the ACS,
having been originally created years ago by Philip Greenspun.
VII. Revision History
Document Revision # |
Action Taken, Notes |
When? |
By Whom? |
0.1 |
Creation |
2000-10-12 |
Alan Dickens |
adickens@arsdigita.com
Last modified: October 12 2000