Software Download Tracking System

We were asked recently to provide a simple method to let Department of Computing researchers make software or datasets available for download, and then track who downloads that material.

This Download Tracking System (DTS) is what we've come up with to provide this facility, for anyone who'd like to use it.

For each user who downloads software via the DTS, we gather the following pieces of information:

The basic idea

Without the Download Tracking System, you'd probably create a single web-accessible directory for the software, containing the downloadable software itself (usually as a tarball) along with a web page containing a description of the software, how to download, install and use the software. This web page would contain one or more "download this piece of wonderful software" links to the tarball in the same directory.

When you use the Download Tracking System, you still proceed in the same fashion, the only difference is that you replace the "download this software" link with a link into the Download Tracking System webpage naming the package (and hence the tarball).

When a user wants to download the software, they read your instructions page, click on the "download this wonderful software" link, and the DTS will ask them to provide their details (name, institution, email) before providing the link to the tarball in the original directory.

The detailed procedure

Let us consider a simple example. We're about to write the most wonderful program in the world (ok, ok, it's the good old "hello world" example), then make it available to the world.

STAGE 1: Creating the software

In some suitable non-web accessible source directory, let's create a directory and populate it with the desired materials (we'll give this as a series of Linux commands, Windows users should ssh into a shell server, shell[1-2-3-4].doc.ic.ac.uk, and work there):

mkdir -p ~/src/hello/hello-1.0
cd !$

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
        printf( "hello world\n" );
        exit(0);
}

CC      =       gcc
CFLAGS  =       -Wall
all:    hello
clean:
        /bin/rm -f *.o core hello
hello:  hello.o

hello.c: the most wonderful piece of original software
ever.  it's great.

compile with: make

run with: ./hello

Stage 2: Publishing the Software via the DTS

cd ~/src/hello/hello-1.0

make clean
cd ..
tar czvf hello-download.tgz hello-1.0

tar tzvf hello-download.tgz

mkdir ~dcw/public_html/hello
cp hello-download.tgz !$

<pre>
<a href="http://www.doc.ic.ac.uk/download/?package=hello">hello-download.tgz</a>
</pre>

<html>
 <head>
  <title>hello - the software you've all been waiting for</title>
 </head>
 <body>
<h1>hello - the most wonderful piece of original software ever.</h1>

<p>
Download the hello tarball via our download form at:

<pre>
<a href="http://www.doc.ic.ac.uk/download/?package=hello">Download the Hello Tarball</a>
</pre>

<p>
Extract the tar ball, then read the INSTALL file for building
and packaging instructions.

<hr>
</body></html>

http://www.doc.ic.ac.uk/~dcw/hello/

hello - the most wonderful piece of original software ever.

Download the hello tarball via our download form at:

Download the Hello Tarball

Extract the tar ball, then read the INSTALL file for building and packaging instructions. 

Welcome to the Imperial College Department of Computing download system

Thanks for expressing an interest in downloading hello. We would like you to tell
us who you are, where you're from, and how we can contact you before we let you download hello:-)

Name:         ______________

Institution:  ______________

Email:        ______________

Submit      Clear

Thanks for expressing an interest in downloading hello.
Thank you for filling in your details. They are:

Name:           dunc the hunk

Institution:    hunkland

Email:          dunc@hunkland.com

To download hello, please click on the link below:
http://www.doc.ic.ac.uk/~dcw/hello/hello-download.tgz

Stage 3: Checking the logs

less /vol/www/doc/download_log/hello.log 

2012/02/01 18:50:53,dunc the hunk,hunkland,dunc@hunkland.com,http://www.doc.ic.ac.uk/~dcw/hello/hello-download.tgz

services/download (last edited 2012-10-04 17:12:05 by dcw)