WIMS technical documentation

This document is currently under indexed style. You may change it to integral or folding style. There is also a general help and a paper on WIMS.


Basic structure of WIMS

The central piece of a WIMS server is a cgi program, usually in the name of wims.cgi. It takes all the http calls to the server, then does the following work:
  1. Call the module asked by the user, and process parameters and variables according to what is defined in the module.
  2. Session management.
  3. Send the result of the process to the user.
  4. Write to different log files.

Modules of WIMS

A WIMS server is a modular system, with different applications as modules. At each new call to WIMS, the user has to specify which module he wants to access.

A WIMS module may be an interactive course or interactive exercise (of any level), a computational tool, a dictionary, a mathematical game, a database, or a mixture of the above.

WIMS modules are independent from each other. Each module has its own directory, which serves as its address, and contains all the files of this module. Different modules have different authors and different maintainers, and may follow different copyright policies.

There is no relation between modules in a same WIMS site, except hypertext links which allows one module to access another in various ways.

How to access a WIMS server

WIMS is accessed by a request to the main cgi program, for example
https://wims.univ-cotedazur.fr/wims/wims.cgi

which usually should be followed by parameters. A call to the main wims.cgi program without parameter will bring up the WIMS homepage of the site.

Parameters of wims.cgi is a usual http name=value pair, where the name field may be one of the following:

  • cmd: the value is the command of the call. Valid commands:
    Parameter stringMeaning
    cmd=introget introduction page of the module
    cmd=newopen new working session
    cmd=renewrestart working session
    cmd=replysend reply to the module
    cmd=nextget next exercise (in a working session)
    cmd=configset preferences
    cmd=helpget contextual help
    cmd=hintget contextual hint
    cmd=resumeresume work (e.g. after help)
    cmd=getinsget dynamic insertions: internal use by the server. Not to be used by modules.

  • module. the value is the name of the module which the user wants to access.
  • session: the value is the number of the current session of the user.
    The session number is automatically generated by wims.cgi, and is usually automatically contained in the pages sent by the server. Tampering with this parameter by the user (e.g. in order to spy into others' work) is not allowed and has practically no chance to get through.
  • lang: the value defines the prefered language of the user.
  • user: the value is the user name (for registered users; reserved for internal use).
  • useropts: the value contains user options for the server. The format is coded and may vary from version to version.
  • worksheet: reserved for internal use, for determining user works assigned by worksheets.
  • special_parm: this parameter is reserved for special requests (help, etc).
  • Any variables accepted by the module the user is working on (or wants to work on).
Example:
https://wims.univ-cotedazur.fr/~wims/wims.cgi?cmd=new&+module=tool/algebra/factor.en
calls the WIMS server at wims.univ-cotedazur.fr, with `new' as the value of `cmd', `tool/algebra/factor.en' as the module name.

How to use the supervisor-side interface

Supervisors of registered classes can maintain their classes and consult results of students via the same web address (the main cgi program), just by logging in as supervisor. All the options are then available via html links and buttons.