Deploy and Customize Ushahidi

From TeachingOpenSource


Deploy & Customize Ushahidi


Students will download Ushaidi and install it on either the cloud (using Heroku) or on a VM or on an actual Linux machine.


Understand client/server concept, how to install software, how to use command line interfaces, basic XML concepts.

After successfully completing this activity, the learner should be able to:
  1. Implement and deploy a basic working Ushahidi server
  2. Configure Ushahidi server
  3. Deploy a Ushaihid client
Process Skills

What process skills will the student practice while completing this activity?


Is there background reading material?

Students should read Ushahidi install documentation:

Readings on client/server architecture.

Readings on the platform used.

Are there other activities the student should have done first?

Students should be familiar with Ushahidi and have examined or done an Ushahidi deployment. Example deployments can be found at

What is the rationale for this activity?

This activity will give students a hands-on understanding of the Ushahidi server.

Include helpful hints to faculty here.

Installing on Heroku is very simple and can be done without configuration or through a terminal with configuration.

Installing on an actual Linux box can be challenging (or impossible) without previous Linux experience.


What should the student do?

Instructions for installing Ushahidi can be found at


What will the student hand in?

  1. Students will provide the URL of their server.
  2. Students will provide a 3 page reflection that includes
    1. challenges encountered
    2. reference to the instructions that they followed and comments on these
    3. suggestions for others installing
    4. configuration options that they used


How will the activity be graded?

Instructor will go to the URL and test the deployment.

Students will perform an installation by following other student's instructions.

How will learning will be measured?

Learning will be measured through a reflective paper.

Include sample assessment questions/rubrics.

Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
Ushahidi installed Does not run Runs with stock configuration Runs with some configurations Runs and is completely configured
Reflection No information provided Paper just provides available instructions and contains no hints or reflection Paper provides enough information for a new user to perform a successful installation Paper provides rich information and hints and reflections on the process that the student followed


What should the instructor know before using this activity?

Instructor should perform the installation prior to the start of the class.

What are some likely difficulties that an instructor may encounter using this activity?

Instructors must be aware of versions; these can change during the course.

Installation procedures change often.

There are many dependencies which must be installed before Ushahidi can be installed. These dependencies can change during the project.

Additional Information

Area & Unit(s)

IM, information management, NC networking and communication


Information Management Concepts, Networked Applications/client-server applications


Basic configuration is easy, advanced configuration is medium.

Estimated Time
to Complete

2 hours

Environment /

Students need a github account and access to either Heroku or a Linux box that can be configured.


Alan Rea, John Barr, Ying Liu, Jiang Li, Jonathan Poritz




This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC BY SA.png

Suggestions for Open Source Community

Suggestions for an open source community member who is working in conjunction with the instructor.