Google Summer of Code 2009 IDEAS


This is the ideas list of the Sahana project for the Google Summer of Code, 2009.

We have been involved with GSoC in 2006, 2007 & 2008. These involvements have been very effective in building both the project and the community, so we are looking forward to having another productive year as well…

FAQs on the Summer of Code program are here:

Below are the tentative ideas of the project, but you are also encouraged to submit new ideas as well….these can be discussed on IRC or the Mailing List.
To look for other ideas, you can look at the Blueprints.

Student Guidelines

Students applying or participating in Sahana projects for 2009 should review the Student Guidelines.

You can also check out the following to know how to get started with Sahana development from scratch

in PHP:

or Python:

Project Ideas

Disaster Victim Identification

Skills required:

  • Programming in Python (Web2Py experience preferred) and/or PHP (Sahana experience preferred)
  • Programming in JavaScript (JQuery experience is an advantage)


Whilst any of these BluePrints could serve as the basis for a project, one which seems to be a good size for a GSoC project is the Real-Time Tracking.

Skills required:

  • Programming in Javascript (OpenLayers &/or Ext experience preferred)
  • (Basic) Programming in Python (Web2Py experience preferred)

Messaging Module

SMS transport

Skills required:

  • Programming in Java (J2ME experience preferred)
  • Programming in Python (Web2Py experience preferred) or PHP (Sahana experience preferred)
  • Programming in Javascript useful (jQuery experience preferred)


The problem faced by emerging coordinators is communicating field data to central levels and receiving information during the response stage of a crisis. Network congestion is a fact during the peak or initial stages of a crisis. Hence, voice channels are the first to shut down. Other means such as GPRS signals are not always up to par and in most cases would be weak in covering remote location that are in the periphery of the footprint of cellular towers. However, SMS that works on weak signal strength, a store-and-forward communication technology, even though may not send the information in real time, would eventually get the data across to the terminal devices.

Presently Sahana, a web browser application, reliant on Internet connectivity for data exchange, is developing a class of mobile phone and personal data assistant hand-held device applications to operate in the field. These hand-held devices are handy effective tools in data collection and reception. Although GPRS exists as means for providing connectivity, given the question on reliability, it is important that a redundant or alternate channel for transferring information is in place, if Sahana applications are to be effective across available communication network platforms.

The problem that this project promises to solve is to develop an SMS transport layer that can communicate with the Sahana applications during times of need. This proposal outlines the goals and design of the envisaged software object that will work as a general protocol to support all Sahana modules for networking with hand-held terminal device applications.

Ideally a single client UI should be able to use multiple back-end transports (Bluetooth/GPRS/SMS). This could be built on the existing J2ME client or rebuilt using a framework such as Kuix.

  • A framework handles issues such as varying screensizes for us
  • Kuix allows the UI to be maintained in XML/CSS which lowers the barrier considerably which could be a big advantage to our RAD needs


  • research existing SMS based solutions for data exchange between clients and servers
  • define a generalized envelope for packaging attribute based record sets in to SMS pages
  • design and develop an open source software object for transporting data over the SMS technology
  • prove concept by using the developed software object in an existing Sahana module (e.g. Situation Awareness)
  • use a binary SMS format for efficient data transfer ( see binary_sms )

Design and development plan

The idea is to build the object in pink for both the server and client. The client Sahana SMS Transport will need to compress and sequence the SMS pages for each record or query it submits. The server Sahana SMS Transport will unwrap the sequence of SMS pages received to reformulate the record or query string.

The project will do the following:

  • use Kannel &/or SMSTools or GAMMU to manage the SMS gateway operations
  • develop a library for parsing SMS strings in to record with multiple attributes
  • develop a sequencing technique to manage multiple SMS pages related to a single record
  • adopt a data compression technique for packaging the SMS data
  • develop a set of simple APIs for programmers to embrace use in building database applications
  • work with the community to define an effective binary SMS format for Sahana

Logistics (Warehouse Management) Module

see logistics_module for general information about plans for Logistic Management System for Sahana


No disaster management system is complete without a way of managing the logistics required by a disaster relief operation. Time and again, governmental and non-governmental organizations have their supply chains overwhelmed by having to handle more items than they are used to for normal operations. The challenges logistics poses will determine the success or failure of any relief operation. Having a system in place to manage these resources that is valued on a daily basis for routine operations but is easily scalable to handle larger requirements during a disaster will help ensure the success of that agency’s emergency relief operations.

A robust Logistics Management System is planned for Sahana that will address all of these requirements and more. However, this project is admittedly too big for a GSoC project, so we propose to start by building a Warehousing Management module that is designed to handle the requirements of warehousing operations by non-governmental organizations working in the developing world.


To produce Warehouse Management module aimed specifically at NGOs in developing countries, for use in disaster relief, recovery and development programs. This stage of development is limited to developing a module for use in a warehouse, but it should be designed to fit within the broader plan for a logistics management system that would include procurement, asset management, fleet management, commodity tracking, supply chain management and distribution tracking and reporting.

Design Plan

The proposed Sahana Warehouse Management module incorporates two crucial pieces of functionality for any non-governmental organization – the ability to receive (or intake) items into its inventory, and to manage how the warehouse handles those items. This functionality will be of great value to the organization during normal operations and for handling emergency times.

see logistics_gsoc09_design_plan for details of Warehouse Management design requirements.

MPR Duplicate Report Identification

The current Missing Person Registry doesn't have a way of identifying possible duplicate missing reports. The expected functionality of the module would be to suggest duplicate reports, meaning two people X and Y reporting the same person Z as missing.

This should be done by matching names, locations, physical features (hair color, eye color, skin color, etc) and photographs. The module should only suggest duplicate reports but not eliminate them; eliminatino should be done by a human user after a review.

Technologies : Data Analysis, Categorization, Image manipulation, Reporting

SahanaOCR::Advanced Functionality

SahanaOCR uses image feature extraction and AI in the form of Artificial Neural Networks (ANN) for optical character recognition. The basic framework which includes image processing and segmenting, training and feeding the ANN and recognition framework, with a simple GUI is already there for both Windows and Linux. In this phase we need to mainly focus on improving the accuracy, robustness, integration with Sahana database and user friendliness. Extend the functionality to write the results to a XML file which can be easily feed into the respective Sahana Web Form.

Please consider the content on this page when enhancing the functionality and following are the parts that are already implemented

Image processing

  • Recognizing the outer boundaries of the form
  • Rotation compensation
  • Segmenting the data areas


  • Feature extraction (40 features)
  • Training the ANN
  • Recognition (Not accurate due to the lack of sample data)

Technologies: Image Processing(OpenCV library), Artificial Neural Networks(FANN library)

Aggregator mashup portal

When a disaster is occurred several Sahana instance may be installed. So there should be a way to a one instance to use/view information from other shana instance. Best way to do is implement a mashup portal in Sahana. This would allow a user to create a customized page, which contains information from selected sources, filtered, arranged, formatted, and displayed in a standard or user preffered manner, and allow the user to publish the created page on the server so that other can view the organized information and make use of it.


Synchronizing SAHANA data using Android platform

Synchronization module on the SAHANA framework is important one because it allows users to synchronize various SAHANA installation although they are not connected via wired or wireless medium (Actually we cannot hope connectivity in a disaster). On the otherhand, Android is the latest fully opensource embedded development platform and we believe that Android will not run on mobile phones only but it will be in your car dash-board as well by future. So in this project, we hope to develop an application which extract a data dump automatically from a SAHANA installation using Android running mobile device, edit it inside the device and finally it will synchronize with the SAHANA installation automatically.

SAHANA Synchronization interface

Since we expect to have SAHANA new synchronization platform, I thought to change the objectives of the SAHANA IM applet in order to achieve the maximum interoperability with synchronization platform. So the applet should be able to work as a webservice client as well as a RSS client. Then we can interface any SAHANA installation with the data synchronization platform using the IM applet. In the meantime the applet should provide typical Instant Messaging features. It doesnt matter you have removed the IM part of the proposal because we have put much emphasis on synchronization client part.

Disaster Warning System

One thing missing in Sahana is an advance disaster warning system which should able to manage warnings and issuing alerts to volunteers, organizations and etc…

CAP Publishing and Firefox CAP plugin

Expand the Sahana CAP publishing capability to provide RSS/Atom feeds of CAP alerts, and create a browser plugin for Firefox that allows users to subscribe to public and Sahana server CAP feeds to receive alerts directly in the web browser.

My original post covering the idea in more detail

Survey module

Survey module can collect information from Sahana users through surveys (questions). Survey creator will be able to create surveys by simple steps and module will automatically will create survey forms. Also module will create some reports based on data collected from survey.

Sahana Dynamic Theme Manager

There are several themes we built within Sahana but if user is not satisfy with these themes he should able to change the colors and every thing as his preferences, but the problem will be he is neither a Web designer nor a CSS designer. Then are certain cases where user have to change the theme according to their organizations preferences.

Sahana Dynamic Theme Manager contain graphical representation of Sahana CSS class then user able to change Sahana theme while looking at user interface but not editing CSS class manually. This module should contain color palate, images and many other tools which help to represent Sahana CSS class and user able to alter Sahana theme as their preferences dynamically also it should allow to upload their organization logo. Finally user won’t be limited to specific number of themes they can create their own Sahana themes dynamically. Finally user has capability to create hundreds of Sahana themes very easily.

Peer to peer synchronization

Current synchronization is a more close to a manual process which needs to transform data dump manually. This system must replace that current process in a automated p2p manner. It should be independent from the communication medium.

Right-to-Left Localisation

We want to fully support right-to-left languages, such as Arabic, Hebrew & Persian. All widgets need to support this in an easily maintainable way - ideally, the user should be able to switch the language and overall UI orientation together by just one click (customizable locale profiles).

Willing to Mentor

The following contributors are willing to mentor for GSoC-2009:

Mentor Name IRC nick Area
Dominic König nursix DVI, Right-to-Left
Fran Boon flavour GIS, Messaging, Python Framework, Right-to-Left
David Bitner bitner GIS
Mark Prutsalis mprutsalis Logistics
Ravith Botejue MPR Duplicate Report Identification
Nishantha Pradeep Synchronizing with Android platform, IM Applet
Chamara Caldera mashup portal,Warning System, p2p synchronization
Gavin Treadgold gavin_t General EM domain
Nuwan Waidyanatha waidyanatha SMS Transport, Messaging, Logistic
Chamindra de Silva chamindra Sahana Framework, Security, BinaryXML
Mahesh Kaluarachchi maheshkks Logistics
Miyuru Daminda Survey module
Hayesha Somarathne Sahana Dynamic Theme Manager
Viraj Edirisinghe MPR Duplicate Report Identification, Survey
M.I.Haniffa Warning System, Logistics, Survey
Joseph Fonseka jo Sync , CSS , Data Import/Export
Kapil Dua Kaps Messaging, Python Framework, Mobile Applet

QR Code
QR Code dev:sahana_gsoc09_ideas (generated for current page)