Version 35 (modified by Ajay Kumar, 15 years ago) ( diff )


SahanaPy Workout @

SahanaPy is having a week-long workout at 2009 - Workout Wiki Page


SahanaPy is an example of HFOSS (Humanitarian FOSS). It is a RAD framework for developing Emergency Management applications. Sahana has been used to help support most major disasters since the Indian Ocean Tsunami including localised versions for floods in India (Bihar 2008 & Andhra Pradesh/Karnataka 2009). You can check Sahana's History here & here.

The core team will all be physically together in in one place for the week to really push our framework to the next level. We'll be extending a warm welcome to any Python/JavaScript programmers who wish to join in throughout the week. We will be polishing up our back-end REST/XSLT-driven XML/JSON controller & developing new front-end UI tools - flexible layouts with advanced widgets (based on ExtJS &/or jQuery generated programmatically by the easy to use, lightweight & powerful Web2Py. We'll also be looking at improving our GIS functionality using Javascript toolkits like OpenLayers & GeoExt. We also should be fixing our Testing framework, based on Selenium.

How will people benefit from attending?

  • Get acquainted with a new python web framework Web2Py
  • Use advanced JavaScript functionality
  • Get a sense of fulfilment from contributing to HFOSS

Audience, Pre-requisites

How to Communicate?

NB If you have problems accessing, then add this to your hosts file:


What are we going to do?


  1. Ext
  • We're starting by hand-crafting Ext pages which interact properly with the back-end.
  • Later we are looking to generate these programmatically to restore RAD.
  • Trying different approaches:
    1. Add a new format=ext representation to the REST controller which uses ext versions of the default layouts which inherit from layout_ext.html
      • This seems very slow to load the different components (header, footer, content) into the Ext Viewport
      • Have optimised the model to reduce overheads here, but it still doesn't seem to be an optimal approach
    2. Ext forms embedded inside the standard layout
      1. Done: Start with the login form (downside is that browser can't save login/password)
      2. Done: Need to get the Web2Py form.custom to integrate with Ext
      3. EditorGridPanel to replace dataTables
      1. Growl-like notifications: App.js
      2. Menus
      3. Popups
      4. Hyperlink buttons converted to Ext style
      5. Could add the Ext.ux.PasswordMeter to the register form :)
  1. GIS
  • Display Feature Details in Popups
  • Upload Photos - with GPX Track & use timestamps to place associated features onto the map
  • Make Features Editable from the Map
  • Export Features as GeoJSON (using S3XRC with an XSLT)

Ajay & Michael

  1. Logistics Management Module


  1. OCR
  2. Messaging Module
  • Done: Auto-probing of Modem added to PyGSM
  • Get Sahana to make use of Auto-Probing
  • Add SMS Gateway API providers


  1. Done: Finish integrating the GPS coordinate converter into the GIS Location input form
  2. Done (front-end): Multiple File Uploader for the GIS Photos
  3. Done: Provide a layout which allows tables to be scrolled when they exceed the width of the display


  1. OCR
  2. Backups


Whilst any BluePrint is fine, suggestions for areas suitable for a newcomer:

  1. Volunteer Management Module
  2. Appliance
  3. CSS:
  • Provide an Ext theme


  • 11 people worked on the codebase (7 of these had never touched the code before)
  • 4 others took the code away for study & hopefully later contribution
  • Some bugs were fixed & new functionality developed (OCR, Bulk Image upload with timestamp correlation from GPX track, Ext EditableGrid, Autoprobing of GSM modems, GPS Coordinate converter, Logistics Module enhancements)
  • Contacts established with other projects.


Note: See TracWiki for help on using the wiki.