GSoC/GCI Archive
Google Summer of Code 2009


Web Page:

Mailing List:

Sahana is a Free and Open Source Disaster Management system. It is a web based collaboration tool that addresses the common coordination problems during emergencies and disasters. It provides capabilities such as:

  • finding missing people
  • managing aid
  • managing volunteers
  • tracking camps effectively between Government groups, the civil society (NGOs) and the victims themselves.

The Sahana community is structured around the following:

  • developers - centered around the Sahana maindev email list and IRC
  • users - centered around the Sahana user email list
  • Project Management Committee - a meritocracy within the community to provide leadership and oversight
  • Lanka Software Foundation - currently handles all logistical and financial arrangements for the project. For GSOC09, LSF will remain the logistical base for Sahana payments.


  • Aggregator Mashup Portal Increase the efficiency of decision making in Sahana where users need to view data in abstract views. This data is from a single Sahana instance or from multiple Sahana instances. In current system there is no user driven mechanism to integrate this data sources and generate user view according to there requirements. The Aggregator Mashup Portal facilitates user to generate customize views by drag and drop data items he required by using web services and RSS that each Sahana instance provide.
  • J2ME client with multiple transport back end support (GPRS,SMS - with major emphasis on SMS) supporting submission of form data for data collection on field. The project aims at enabling Sahana users ( Both PHP and Python Versions ) to fill out the forms (missing persons reports etc.) on their handheld/mobile phones that support J2ME and send the data via SMS/GPRS. Mobile phones are in widespread use in most parts of the world making this a quick and a cost efficient way of deploying data logging units in disaster prone areas. This serves the interest of emergency management community in enabling speedy data collection from field.
  • P2P Synchronization of Shana Servers Syncing Sahana Servers has been discussed recently on sahana-dev. It is basically about syncing different instances of Sahana server which have been deployed by an organization. Syncing two Sahana servers is basically about syncing their databases. It cannot be simple database dump because we also have different database semantics at SahanaPHP and SahanaPy. So first I'll create a module in SahanaPy which exports database as in SahanaPHP. The idea is to build upon presently exporting mechanism. I will also extend Synchronization module in each Sahana server to add automatic synchronization by adding a new feature called 'Sync Pool' (As shown in diagram). It will basically list all those pools which that instance of Sahana belongs to. A user (admin) can join new pools, edit the relationship with different pools (like type of data to import, time lag for each sync attempt etc). Software which implements Zero Configuration runs continuously in the background. It has a search mechanism which is implemented by two tasks, 1: It exposes services with the name of all those pools which the instance of Sahana has subscribed to. 2: It 'searches' all those Sahana instances which have also subscribed to its pools. Once it finds servers which are in the same pool as it is, it fetches their database using Synchronization methodologies currently present (HTTP GET/POST). User can also specify server by IP/URL. Then it parses the XML and adds unique records in the database. At the time of installation, software needs to know administrative password of database.
  • Person Registry(PR) for Sahana Person Registry is a centralised location to collect person information. The objective of Person Registry is to add person information in one place and to share data with other modules such as Missing Person Registry, Disaster Victim Registry and Volunteer Management and etc. Following are the advantages of Person Registry(PR). * Search person for emergency purpose. * Track person for various needs. * central location to collect person information.
  • Sahana Dynamic Theme Manager If a user is unsatisfied with one of the inbuilt Sahana themes, he should be able to select the theme and change its colors, fonts, sizes, site-logo and other site elements to his liking using a web-based GUI (palates, images, upload-boxes etc) w/o having to delve into CSS. Moreover, the site admin can customize the theme to his liking and specify if normal users be able to do so or not. If allowed, each user may customize the look and feel and view the Sahana page page as they customize it.
  • SahanaOCR module SahanaOCR is a critical component which must be already there. The data captured in forms have to be reentered manually adding an additional step and potential bottleneck for the processing of information. Handwritten Character Recognition (HCR) technology can be used to automate this process to a great extends. Sahana has already started this project due to the importance, but not yet completed.
  • SahanaPHP CAP Reader and Firefox Plugin The project aims to develop a CAP reader for elevating the efforts done so far on CAP in Sahana and hence enhancing the pool of Sahana. Adding to the counter a Firefox extension to read CAP alerts and a PHP REST API for pulling CAP alerts are also proposed within the project to widen the user reach.
  • Warehouse Management under Logistics Module The developer proposes to add a set of new modules to address the important need of a "Logistics Management" module within the Sahana Disaster Management System. The focus is to start with a set of modules addressing the "Warehouse/Inventory" Intake process and the Warehouse "Management" process, required to keep track of the commodities, used in the relief process, and manage their information in an effective and efficient way.