Skip to content
Self-hosted Knowledge Software your question & answer system written on top of the CakePHP Framework
PHP JavaScript Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
app #107: Adding Spanish translations and menu link Oct 23, 2015
plugins Initial Coordino commit. Aug 7, 2011
vendors Initial Coordino commit. Aug 7, 2011
.gitignore Adding in the cache folder Mar 28, 2014
.htaccess Remove rewriteBase for relative path issue May 8, 2012
LICENSE.txt Initial Coordino commit. Aug 7, 2011
README.txt Merging in the next branch. Mar 30, 2014 Updated a spelling error in the Readme Jan 10, 2013
index.php dust clearn Jul 31, 2012


All that is required is your basic LAMP/WAMP stack. However the best-case conditions:

  • PHP5+
  • MySQL 5.1+

How to Install Coordino

Unzip the Coordino package your root working www directory.

ex: /var/www/htdocs/

Then open your web browser and proceed to to complete instillation.

Widget Tokens

Tokens may be used to render dynamic content to the user.

The following tokens are available:

  • The logged in user's username. - [user.username]
  • The logged in user's reputation. - [user.reputation]
  • The logged in user's age. - [user.age]
  • The logged in user's website. - []
  • The logged in user's information. - []
  • The logged in user's location. - [user.location]
  • The logged in user's answer count. - [user.answer-count]
  • The logged in user's comment count. - [user.comment-count]
  • The logged in user's question count. - [user.question-count]
  • A link to the user's profile. - [user.profile-link]

For example:

Hello [user.username], Welcome to Coordino!
Check out your profile at: [user.profile-link]
Or answer some questions!

Remote Auth. Logins

Coordino works in two modes:

  1. An internal userbase. (Remote Auth Only "No")
  2. Remote userbase. (Remote Auth Only "Yes")

These settings may be changed in the administration setting under "Admin" -> "Remote Settings"

The internal userbase is the standard setting for Coordino. New users will register either by asking a question, answering a question or registering themselves. The users username, password, and email are kept internally.

However, if you have an external userbase already and do not wish to have all of your users re-register for a system you can use a form of automatic integration. You must create a script that first compiles a message and then forwards it to Coordino's Remote Login system based off of your current logged in user's details.

The following user details from your userbase are needed:

  • Username
  • Email Address

The following extra message details are needed:

  • Timestamp
  • Remote Auth Key (Found in Remote Settings)
  • Hash

Take the following example in PHP:

 * Remote authentication for PHP
 * This is meant to be used as a template to base the integration with your application.  

// The following values should comefrom your source of information
$username = 'BillyRogan';
$email = '';

// Insert your Authentication key here
$key = '98y94NIUfafnajskfn9823JNAIUz'; 

// Build the Message
$timestamp = time();
$message = $username . $email . $timestamp . $key;
$hash= md5($message);
// Set the URL of your Answer Engine install and form the correct remote authentication URL.
$url = '' . $name . '/' . $email . '/' . $timestamp . '/' . $hash;
header('Location: ' . $url);

The username and email address are pulled from your current userbase. Then a message is compiled with the User's username, email, a timestamp, and your remote auth key. That message is then md5'd into a check hash. A URL is then formed with the correct information and the remote logged in user is then forwarded to the Coordino Remote Access URL.

Translate Coordino

Because Coordino is ready for i18n, you can contribute to translate it! To help you, you can have some informations in :

How to generate .pot files ?

Run this command in the root path of Coordino :

$ php cake/console/cake.php i18n
> [E]xtract POT file from sources
> Verify the full path in [] for "app" and validate it
> [D] Done
> Verify the full path in [] for "app/locale" and enter to validate it
> Merge all domains strings in the default.pot file (y)
> Waiting for extractig
> Default.pot already exists, Overwrite it! (y)
> verb.pot already exists, Overwrite it too! (y)
> Done ;)

Contributors - Thank you!

Don't see yourself Just edit the Readme!

You can’t perform that action at this time.