CDD: How Well Are You Talking To Your Customers?

White Paper
Installation & Configuration
Release Management
Example CDD Project

Related Resources:
CDD home-page at home-page licensing information contact us home-page FFDB Logo
Copyright P. Simon Tuffs, 2004. All Rights Reserved.CDD Version 0.1.0, PHP Version 5.3.3

CDD: Installation and Configuration

Installation and configuration of CDD is straightforward, but not trivial. There are a number of parameters that only you can specify, including the project name, passwords, public-keys, and database directories. We have attempted to simplify this as much as possible, but the process can still be frustrating. If you need our consulting services to bring your CDD project up-to-speed please contact us.

Alternatively, if you would like us to host your CDD site for a reasonable monthly fee, please let us know. Hosting has the advantages of zero setup and maintainance on your part, together with benefitting from automatic software updates as they are released.

Finally, CDD is implemented on top of a portable Flat File Database called FFDB. Our intepretation of the integration between CDD and FFDB led to our decision to place CDD under the terms of the GPL. To this end, the full source-code for CDD is available from the project CVS repository at Consideration should be given to the implications of the GPL if you decide to produce a derivative product, or integrate it with your own software.

Our testing has shown that the FFDB database exhibits poor performance for more than a few hundred entries. CDD uses a DAO (Data Access Objects) abstraction that makes it simple to switch over to a relational database technology if your user-base grows to that size. Please contact us if you would like to purchase an SQL database binding for the CDD DAO layer.

Installation At

The CDD software is hosted on the web-site. If you are building an Open-Source project which is hosted at Sourceforge then you do not have to download and install any software. When you come to configure your project (see the Configuration section below), simply specify YOUR_CDD_INSTALLATION as /home/groups/c/cd/cdd/htdocs

Important: If you link to the CDD software at in this way, you should also register with the CDD release process so that as the software evolves, your CDD information can evolve with it. We make no representation as to support or warranty (see the GPL license), but we will attempt to let you know when major changes are coming so that you can test your use of CDD against the coming upgrades if you are registered with the system.

Installation Outside

CDD is server-side software. Your server must be running PHP 4 (CDD hasn't been tested on PHP 5, and probably won't work given the significant changes that PHP 5 has with respect to the object-model used extensively in the CDD software).

You must therefore be running an HTTP server which has PHP 4 support enabled, and which renders requests that end with .php through tthe PHP 4 engine. Most web-hosting sites are PHP 4 enabled.

The installation steps are given below:
  1. Create a directory in your Server HTDOCS space where CDD is to be installed. For example, if your server is Apache-2, and its document tree is located at c:/wampp2/htdocs, a suitable location would be c:/wampp2/htdocs/cdd.
  2. Download the CDD distribution from here
  3. Unpack the contents of cdd.jar into the directory you created.
  4. Change the protection of the example-db directory to allow write by the PHP daemon. On UNIX/Linux, chmod a+w example-db will usually do the trick.
    It's very important to get this last step right, or the CDD databases will fail, and the server will generate lots of strange Warning messages.


The Example project links rely on the example-config.php file to provide configuration information for the CDD components. You must edit example-config.php as outlined below.

The example-config.php file specifies at least eight configuration parameters for the CDD system:

You must edit the configuration parameters beginning with the YOUR_ prefix. Some of them can be the same, for example YOUR_PASSWORD and YOUR_PASSPHRASE. Most of these are obvious, but the critical one is YOUR_CDD_INSTALLATION which must be the fully rooted path to the place where you installed the PHP code for CDD on your server. For example, on a Windows System using Apache 2.0 installed as part of the WAMPP2 distribution this would be Pay close attention to the presence of a trailing '/' in this path. Note: you don't have to use the PHP define mechanism, you can simple edit the YOUR_XXX placeholders. Also note that while it would be ideal to host the CDD software on an HTTP server and include it from there, we have not been able to make this work (even though this was one of the original goals of the CDD project). The value for YOUR_CDD_INSTALLATION must be a directory in the server's local file-system.

Post Install

When you have completed the installation correctly, per the information above, you should be able to use the links in the list below to access the various CDD subsystems.
  1. Example Project
  2. Example Release Manager
  3. Example Database Administrator
Note: here, these links are to a live demonstration of the CDD software as installed from the cdd-0.1.0.jar distribution. The username and passwords are set to "admin". The example data is reset every hour so feel free to experiment with it, but please don't abuse it. The sending of bulk emails is disabled.

Each of these links demonstrates a particular aspect of the CDD system:

  1. The Example Project page, implemented by example-project.php< represents your HTML page into which the CDD voting mechanism is to be embedded.
  2. The Example Release Manager page, implemented by example-release.php is the administration console by which you make CDD feature releases. As features are implemented you will want to email your registered users so they can be kept informed about project progress. The Release Manager lets you do this, and it also assists you in managing the encrypted email database.
  3. The Example Database Administrator provides low-level access to the database which underlies CDD. This is currently using the Flat-File Database package, but the CDD software architecture is such that a switch-over to a relational database is straightforward.