written by M.Liberi
Nov 10, 2003
Michele Liberi
Web Based Knowledge Exchange is an HTTP based client/server application built to help users to share knowledge through a question & answer mechanism. It is an evolution of the concept of HelpDesk, in fact it allows users to share day by day working experiences each other, implementing a cross collaborative system.
The knowledge database is segmented into topics, each of them may be public or owned by one or more moderators going to approve submitted appends. Global moderators, allowed to approve submissions to any topic, can also be defined.
Each topic contains threads with the following attributes:
Any registered user is allowed to create a new thread by submitting a question to the community. The newly created thread will be immediately available, but moderators, if any, are notified about thread creation.
there are four append type to existing threads:
If at least one moderator is defined for the topic the thread belongs to, the proposed append will not be available until a moderator approve or reject it.
A newly created thread remains open until an answer is submitted and eventually approved.
A closed thread may be reopened only by the owner, that is who created it, by appending a comment to it.
Users can quickly find threads based on the following search parameters:
A search form is also available to filter Engineering Changes table.
Access to application, that is user's authentication, is controlled by httpd server. The application itself has two distinct security levels: moderators and others. httpd server can be configured in order to request a password for one or both user's category. I suggest to always check moderator's identity.
Nothing more than a browser is requested at client side to access the application. It is, in fact, based on HTML standards.
The application uses a yerarchical, file system based, database to store question&answer threads.
Pending submission waiting for approval/reject has the following additional attributes:
An e-mail notification system can be optionally set up in order to signal the following events to users:
The following screens are available to interact with application:
If available NEWS set by administrator are finally shown.
This package has the following components:
It also requires kcx, shell script compiler package. Read kcx.htm for details.
knowlex is the main component of the package. It is a CGI (Common Gateway Interface) program, based on input given by user through HTML forms it dynamically generates html pages.
If activated with '-h' option it generates the following output:
knowlex, written by M.Liberi, ver. 1.07, Mar 2003 knowledge exchange CGI syntax: knowlex [option]... [parameter]... -h[i] this help screen [with parameters init details] -w write current parameters to stdout and exit -g edit global profile and exit -e edit inifile and exit -L list inifile sections and exit -P select inifile section interactively -pxx read parameters from xx section of inifile -- no more options parameters KE_DIR database directory FYA_URI uri of approval CGI program, in a password protected httpd area STYLE_URI stylesheet reference (if any) CAPTION browser caption string TITLE html pages customized title SUPPORT login screen customized support text EMAIL_EG email example for registration form Mail mail agent, command to be used to send mail LABEL_topic topic name remapping LABEL_subtop subtopic name remapping LABEL_ctg category name remapping
Parameters meaning:
httpd server must be up and running, an alias to a CGI enabled directory must exist (tipically /cgi-bin). If that area is not password protected I also suggest to define another password protected CGI enabled directory. /ke alias to access attachments repository must also be set in $KE_DIR/.pub.
Apache configuration example:
DocumentRoot /http/pub <Directory /http/pub> Options Includes DirectoryIndex index.html <Directory> <Directory /http/cgi-bin> <Directory> <Directory /http/pp-bin> AuthType Basic AuthName knowlex AuthUserFile /http/apache_passwd require valid-user <Directory> Alias /ke /usr/knowlexDB/.pub ScriptAlias /cgi-bin /http/cgi-bin ScriptAlias /pp-bin /http/pp-bin
kcx, shell script compiler, must be up and running. Only runtime files are required. They are located in /bin/kcr and /bin/kcx.
knowlex is a CGI application so main components must be put in a HTTP server managed directory. Two files are required to stay in it:
If FYA_URI parameter is set, a link or a copy of knowlex must be put in a password protected CGI enabled directory.
All components must be executable by user running HTTP server.
/ke/knowlex.htm (this file) must be put in httpd server public namespace.
Create application inifile by running knowlex -e from a tty, with same user running HTTP server, set application parameters with values of your choice.
knowlex.ini example:
[default] KE_DIR='/usr/knowlexDB' FYA_URI='/pp-bin/knowlex' TITLE='every pages title' SUPPORT='please contact Fname Lname for support' EMAIL_EG='gruppopro.it' Mail='mail'
Create upload configuration file /etc/upload.conf and set, at least, chdir parameter referring /ke alias pathname and exec parameter referring knowlex absolute pathname
/etc/upload.conf example:
user nobody chdir /usr/knowlex/docs exec * /usr/HTTPServer/cgi-bin/knowlex append_thread
Create knowledge database base directory, create a sub directory for each topic.
Optionally create global moderators list .moderators in the DB directory (each line must contain a valid username) and the same file into topics subdirectories for topics specific ones.
For each subtopic a list of moderators can be established by creating .moderators file in it.
A list of subtopics can be set by by creating .subs file into topic directory.
A list of categories can be set by by creating .ctgs file into topic directory.
In order to get news displayed at the bottom of search form, a list of .htm files and a list of .txt files can be optionally created in the DB directory.
In order to remove all threads but keeping DB structure (users, moderators, topics, categories), you can simply remove .pol file. All attachments in /ke httpd managed directory should be manually removed
Software Products: Michele Liberi programs and accompanying documentation "Freeware".
Licensor: Michele Liberi, Viale Roma 6, Battaglia Terme (PD), Italy.
This is a legal agreement between you, an end user, and licensor.
By downloading and installing the freeware, you are agreeing to be bound by the terms of this agreement. If you do not agree to the terms of this agreement, do not install this freeware and delete any copies of the freeware that you have downloaded.
This freeware is provided to you free of charge for both commercial and non-commercial purposes. Obtaining a license to this freeware from any party other than licensor and/or paying a fee for such license is strictly forbidden. If you are aware of any unauthorized third party distributing this freeware and/or charging a fee for this freeware, please report such violations to your consumer protection authorities.
This Agreement permits you to use one copy of the Freeware acquired with this license on any single computer ("License") for both commercial and non-commercial purposes, provided the Freeware is in use on only one computer at any given time. The Freeware is "in use" on a computer when it is loaded into the temporary memory or installed into the permanent memory (e.g. hard disk, CD ROM, or other storage device) of that computer, except that a copy installed on a network server for the sole purpose of distribution to other computers is not considered "in use".
The Freeware is owned by Licensor and is protected by copyright laws, international treaty provisions, and other national laws. You agree that you have no right, title or interest in the Freeware, except as set forth in Subsection I.
You may not rent, lease, sell or transfer the Freeware to any third party. You may not reverse engineer, decompile or disassemble the Freeware.
You acknowledge that you have licensed this freeware free of charge and that licensor makes no warranties to you in connection with this license, including but not limited to implied warranties of merchantability, fitness for a particular purpose, title, non-infringement and legality in your country. You agree to defend, indemnify and hold harmless licensor from any and all claims of infringement (including those made by third parties) resulting in whole or in part from your use of the freeware.
In no event shall Licensor be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the Freeware, even if Licensor has been advised of the possibility of such damages.
This Agreement shall be governed by and interpreted in accordance with the laws of Italy. If any dispute shall arise pursuant to any provision of this Agreement, said dispute shall be settled by binding arbitration in accordance with the rules and regulations of the courts, located in Italy. If any term or provision of this Agreement shall be declared invalid in arbitration or by a court of competent jurisdiction, such invalidity shall be limited solely to the specific term or provision invalidated, and the remainder of this Agreement shall remain in full force and effect, according to its terms. Any provision declared invalid shall be modified to the fullest extent possible to reflect the parties intent as of the Effective Date.
Copyright © M.Liberi. All rights reserved.