ArsDigita Archives
 
 
   
 
spacer

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
spacer