FOR ARCHIVAL PURPOSES ONLY

The information in this wiki hasn't been maintained for a good while. Some of the projects described have since been deprecated.

In particular, the "Ushahidi Platform v3.x" section contains information that is often misleading. Many details about this version of Platform have changed since.

This website is an extraction of the original Ushahidi wiki into a static form. Because of that, functions like logging in, commenting or searching will not work.

For more documentation, please refer to https://docs.ushahidi.com

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

We're working on a CouchDb version of Ushahidi 2.7, so Ushahidi can be distributed and ported to Byzantium.Imagine a world where any computer can run a complete copy of an Ushahidi instance during a disaster, and these computers can even talk to each other when the Internet is down. With a few tweaks, this is already possible.

Couchbase is a distrbuted database system that gracefully decays in the absence of a network connection. It is batte-tested and ideal for powering a distributed system. By changing some of the backend code, it becomes possible to run many copies of Ushahidi that stay in sync with each other across spotty network connections. One instance of Ushahidi could be run in each neighborhood, or even on individual computers.

Byzantium is a project to make mesh networks easy to deploy in any situation. It is a variant of Linux that does all of the necessary work to set a machine up as a mesh router.

The current plan is to port one table to Couchbase as a test, then gradually transfer more over until Ushahidi is capable of working in a distributed fashion. In the long term it may make sense to replace MySQL entirely, but for now just moving some core functionality into a distributed form would be a big win.

 

 

Current stack is:

...

Components (new and old) are:

  • Couchdb - except it's now Couchbase
  • Theoretically, Ushahidi controllers call models call ORM:: functions, call mysql... except it's not quite that tidy. 
    • There are 215 mysql calls in Ushahidi 2.7. (see file dbcalls.txt in ushahidi fork above) - but many of these are in the database controllers.
    • There are lots of ORM:: calls in Ushahidi 2.7, spread across the models and controller.
  • CouchDb modules for Kohana - GitHub list  - Kerkness one looks useful.
  • Couchbase modules for Kohana - Kerkness again

...