[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| +-------------+
+-----------------+
|
V
+--------------------+
| Database |
|(SQLObejct -> PGSQL)|
+--------------------+
Domain Objects
**************
Python: kforge.dom
Person
Project
Member (binding between person and project)
Role
Permission
Plugin
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