From a programmer's point of view, it is a collection of sql table definitions supported by HTML interface generated by a scripting language such as Tcl. In order for a module to become a part of ArsDigita toolkit , it must implement common and reusable functions. Examples of modules in the ArsDigita toolkit are News , Bulletin Board , Address Book and Ecommerce .
Data modeling is the hardest and most important part of any module.
If you get the data model wrong, your module might not do what users need, it might be unreliable, and it might fill up the database with garbage. This documentation is primarily intended for programmers and should be brief and technical as necesssary. It should list the features that this module provides, explain purpose of the module, possible uses and discuss design decisions. For good example of documentation, take a look at Chat Module Documentation . A good, reusable module will be used in many ArsDigita installations and it may be required to perform a slightly different funcionality then the default one.