Introduction
The chapters containing the technical documentation are intended to give a deeper insight in how the different modules of the package work and in what way they are interconnected. It is the authors hope that this, togheter with the source code documentation will provide the necessary guidance for futher improvements of the package.
The areas that are covered in technical documentations are:
The code in the project could be divided into three distinct parts (the pharentesis refers to the languages used in the responding module):

The QuestionPages are the only part of the system accesible for the students. As described above, a student could either be given feedback to his answers directly or the answers could be saved on the server. In the latter case, Html standard code is used to send the answers to a CGI script, the script stores the answers on file. As the answers are similar for the different question pages types, we managed to use the same Cgi-script for all.
Applets:
There are three different Applets in the system:
The Applets mentioned above are instead, only used by the teatcher. As the teatcher are a relative small group of pepole we belive that it will be possible, without to much effort, to inform them about; and assist them with; the technical Java problems. To place and retrive information on the server the Applets calls Cgi - scripts. For placing infromation the Applets calls Cgi-scripts using either the GET or POST method. With GET the information is put in the URL, with POST it is sent through a stream. The reading is done in a similar way, when called the CGI scripts returns HTML pages with information these are then read by the Applets.
All applet-CGI-Server communication is done through a class DataLoader, see Fig.1. The DataLoader could be looked upon as an abstraction layer, responsible for the Applets net IO. The idea of using the DataLoader is of course to make it easy to change the way Applet communication is done. Instead of using Cgi-script the system may be design to use for example Java remote objects without to much changes in the Applet core code.
All net communication in the system is done using Cgi. The reason for choosing Cgi were: