Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

#Coagmento Collaboratory ##Overview Coagmento Collaboratory is a modularized and public use version of the Coagmento tool. This project is still under active development, but fully functioning examples can be found in the demo folder of this repository. ##Directories

Contains the core classes for accessing the different components (user, snippet, query, etc.) and useful wrapper classes (session). Also contains the config.php file
Contains files for importing database. The raw schema files are in db/data
Contains runnable examples of how you can implement Coagmento
Contains UML diagrams of the database
Contains simple tests of each core class
Contains the Firefox sidebar plugin
Contains the Firefox toolbar
Contains API listeners for the toolbar
Contains the API

##Setup ###Database The database schema for MySQL can be found in the db/data folder. We have made a simple database import script which you can easily run to create all of the necessary tables. Firstly, edit the core/config.php file to add your database credentials. Then navigate to the db/index.php in your browser. This will show you a list of the tables which you can import, and click "Create Tables" to import them.

Alternatively, you can import this yourself using this command (or similar):

cat db/data/*.sql | mysql -u <user> -h <host> -p

###Environment This was developed on Apache 2.2.22 with PHP version 5.4.6. At the moment, it has not been tested with other versions of PHP but should at least work with PHP 5.4 and above.

###Testing Included in this repo is the test folder containing a number of simple tests using the core classes. If you are setting up your environment, try running these first. If these work, you can see examples of what is possible by navigating to the demo folder.

##Webservices All webservices will be called using a POST request with the following parameters:

userID your user id

action can take values 'retrieve', 'delete', 'update', or 'create'

data is a string of all data relevant for the request. Making this parameter in PHP would easily be done with the http_build_query function

hashed_data is the same string of data hashed with the user's private API key. The private key should be appended to the data and then hashed using sha1.

These post requests will go to different components based on the path this is sent to. For example, sending a request to do something with an action would go to:


Currently, this authentication is based off of this article. It does not prevent someone from intercepting your request, and then resending it to have the action repeated. This may be dealt with by factoring in the time the request has been sent, but this is the present status.

We provide two helper methods for sending authenticated requests in the following files:

webservices/requestTools.php - contains a PHP implementation of sending an authenticated request webservices/requestTools.js - contains a Javascript implementation (requires jQuery and CryptoJS)


Special version of Coagmento for lab studies






No releases published


No packages published