[kforge-dev] Overview of the KForge System

Rufus Pollock rufus.pollock at okfn.org
Fri Aug 19 10:49:00 UTC 2005

      +----------------------+   +------------------------+
      |Command Line Interface|   |Kforge Web Interface KUI|
      +----------------------+   |     (Django Based)     |
                |                +------------------------+-
                |                        /
                |                       /
                |  +-------------+     /
                -->|Command Layer|<---/
                          |               +------------------+
                          V               |Event Notification|
             |DOM (Domain Model) Layer|            A
             +------------------------+<------     |
                          A                   \    |
                          |                 +-------------+
                 +-----------------+        |Plugin System|
                 |Persistence Layer|        +-------------+
                |     Database       |
                |(SQLObejct -> PGSQL)|

Domain Objects

Python: kforge.dom

   Member (binding between person and project)
   Service (an instance of a plugin for a particular project)

WARNING: the term 'Service' has a double use to denote all the 
facilitiess provided to a normal user of the kforge system such as 
subversion, wiki etc

Plugin System

Python: kforge.plugin.*

   * A major aim in developing the KForge core has been to support a 
good plugin system.
	* All KForge services will be provided as plugins.
   * Plugins have access to all KForge APIs
   * They also are notified of events by the DOM's event notification system

User and Admin Interfaces

The System has two top-level interfaces suitable for administration and 
user access:
   * Command line (bin)
   * Web user interface (KUI) (kforge.django)

Both of these work through the Command Layer which centralizes 
application logic. In the future we plan to other top-level interfaces 
such as a SOAP or XML-RPC web api.

More information about the kforge-dev mailing list