This document describes the technical details of the Krang project at
a high level. This document is neither exhaustive or particularly
reliable as it is not frequently updated.
This section contains a catalogue all code modules to be written. The
descriptions of these modules are kept brief, relying the module
documentation to provide in depth treatment.
- Krang::Handler
Apache/mod_perl handler for Krang. Sets up the appropriate instance
and passes the request to a Krang::CGI module. Also handles
authentication.
- Krang::Session
Sessions in Krang maintain state between browser hits.
- Krang::DB
Responsible for managing connections to Krang databases. Also
contains routines to create new databases. Any database convenience
functions we create will live here.
- Krang::Conf
Provides access to the configuration file in conf/krang.conf.
- Krang::CGI
Base class for all CGI::Application modules which provide the web
interface for Krang.
See the Krang Element System overview for
more details.
- Krang::ElementLibrary
Responsible for loading and configuring sets of Element Classes
contained in the Element Library.
- Krang::ElementClass
The base class for all Krang element classes. Provides the
functionality that allows Krang::Element objects to accept user input,
persist in the database and render in published documents.
- Krang::Element
Manages element data created through the story and category editors.
Each Krang::Element object contains a reference to a
Krang::ElementClass object which controls its behavior.
- Krang::CGI::ElementEditor
Provides the element editor web interface, used by Krang::CGI::Story
and Krang::CGI::Category.
- Krang::Contributor
Krang contributor object API. Manages the creation, listing and
storage of contributors.
- Krang::CGI::Contributor
Allows users to manage contributors. Also provides run-modes for use
by the Story and Media interfaces in picking contributors.
- Krang::Group
The core API for the user group system, which controls permissions.
- Krang::CGI::Group
Provides the admin interface for setting up user groups.
- Krang::Log
Provides unified logging services for all Krang processes with output
going to logs/krang.log.
- Krang::History
Mantains a per-object log of important events for stories, media and
template objects.
- Krang::CGI::Bugzilla
Provides an interface for filling out a bug report inside Krang, which
will automatically collect all necessary state information.
- Krang::Alert
The core alert API. Users can configure alerts to send them emails
when certain events occur within Krang.
- Krang::CGI::Alert
User interface for creating alerts.
This list contains all command-line programs to be created for Krang.
The main part of the logic for these programs will reside in the
modules listed above.