++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Overview ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ KnowledgeForge is to use as modularized an architecture as possible in order to allow: * Reduce size bloat and unnecessary complexity * Ability for installers to determine which features they need * Allow new modules and services to be added easily and without impact on either the core system or other existent modules. The KnowledgeForge system is broken down into 3 main sections: *********************************************************************** 1. Core *********************************************************************** * Projects * Users * Permissions * Interface to the core including: * Python DB wrapper * Events notification system (MVC architecture) * Website rendering and management *********************************************************************** 2. Services *********************************************************************** * Examples: * CMS: wiki, website (really just filesystem), ... * storage: filesystems (subversion, dav), databases * project management: mailing lists, artifact trackers * A service is defined by 1. Providing something directly used by an end user of the KF system on which it is installed 2. Interfacing with the Core *********************************************************************** 3. Tools *********************************************************************** * Examples: Pdf Publisher, okftext * Defined by: 1. Being standalone 2. Being small and providing useful functionality to *other* systems ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Thoughts, Questions and Issues ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. [2005-04] should services and tools be seperated ....