Version 91 (modified by Nuwan Waidyanatha, 10 years ago) ( diff )


CAP Code-fest

REGISTER :: Common Alerting Protocol (CAP) Code-fest

An event of the Indian Ocean Tsunami 10th Anniversary Convention (IOTX)

SHOW UP if you are a PROGRAMMER or working in DISASTER MANAGEMENT (but not limited to, encourage all, free for anyone to attend)

Place: Orion IT City Park
Date: Thursday 19 June 2014 9AM onwards


We are applying a Goal Improvement HCI Methodology to experiment with enhancing software components for interchanging various alerting message between the CAP-enabled software tools. For such we have identified the following exercises:

  1. Emulate a Google Alerthub - test base for experimenting with RSS/Atom feeds for a Common Operating Picture; using the Sahana-Eden’s Crisis Map with spatial and temporal filtering capabilities.
  2. Discussion on the Design of the "FIA Reference Service" - quick evaluation of the data model and API intended to provide access to event type and action oriented pictographs
  3. Develop a GUI frame for displaying the pictograph for a CAP message
  4. Scientific Parameter Validation - use the earthquake dataset as a basis for exchanging that data between the Carribean, Indonesian, PTWC, and Establish a set of parameters for exchanging measurement data; first document the norms in the Sahana wiki; then enhance each of the CAP-enabled tools to use the parameter values to change the visualization (e.g. flash flood water height to display the inundation region on a map).

REGISTER - Participate in the Code-fest

Software tools we'll use

Software tool name coding platform team contact documentation
SAMBRO Python/Web2Py/PostgreSQL Nuwan Waidyanatha, Francis Boon , Dominic Konig CAP Broker Blueprint
CAP Editor Java Eliot Christian documentation included
Mobile publisher HTML5/JS Art Botterell CAPTools on GitHub
CAP ITU Software Linux, Apache, MySQL, PHP (LAMP) Isuru Ilangakoon other documentation - based Single Language CAP Publisher and Subscriber

Intended coding and non-coding related activities


(A) Pictographs database and APIs


(A.1) Design a set of pictographs to add to a database

  • Build a pictograph for for the following hazards:
    • (A.1.1) Volcanic eruption
    • (A.1.2) Flash Floods
    • (A.1.3) Storm surge
    • (A.1.4) Landslide
    • (A.1.5) Typhoon
    • (A.1.6) Chemical spill
    • (A.1.7) Maritime accident
    • (A.1.8) Forest fire
    • (A.1.9) TBA
    • (A.1.10) TBA
  • Research the set of alert specific pictographs and relevant icons to create alerting pictographs
    • Here are a few examples of pictograph repositories: UNOCHA, NHS

(A.2) Classify the pictographs (related to task A.3)

  • Identify the CAP elements (e.g. <severity>, <certainty>, <urgency>, <response>, <category>) required to filter through the database to trigger or receive the hazard specific pictograph from the database
  • Duplicate the pictograph for combinations of <event> types, <severity>, <certainty>, <urgency>, <response>, <category>, <instructions> values and any other CAP required CAP elements

(A.3) Create a Sahana Eden form to create, read, update, and delete pictographs in the database

  • Allow pictograph content developers (task A.1) to upload the pictograph and classify the pictograph
  • Allow pictograph content developers to test with a sample CAP message

(A.4) Create a REST-ful API to filter and retrieve a hazard specific pictograph from the database based on the classifier values (i.e. specific CAP element values) - this task depends on task A.5

(A.5) Each CAP-enabled tool display the pictograph with their CAP message

  • The list of CAP-enabled tools:
    • (A.5.1) SAMBRO (Sahana-Eden)
    • (A.5.2) CAP Editor
    • (A.5.3) Mobile CAP publisher
    • (A.5.1) CAP ITU Software
  • Enhance the GUI to display a frame to display the pictograph
  • Create a function to integrate the Sahana-Eden REST-ful API to request and received the pictograph - this activity requires task A.4
  • Demonstrate the working solution

(B) Validating parameters carrying scientific data


(B.1) Develop a database of scientific parameter formats

  • Identify commonly used scientific measures for the following hazard events
    • (B.1.1) Volcanic eruption
    • (B.1.2) Flash Floods
    • (B.1.3) Storm surge
    • (B.1.4) Landslide
    • (B.1.5) Typhoon
    • (B.1.6) Chemical spill
    • (B.1.7) Maritime accident
    • (B.1.8) Forest fire
    • (B.1.9) TBA
    • (B.1.10) TBA

(B.2) Develop a data structure and a GUI for managing relationships between the various ordered encoding of scientific

  • e.g. wave-height would imply the ocean wave height but it can be in centimetres, meters, or inches
  • possibly modelled as a pair object-property; where object is the wave and property is height)

(B.3) Build the API for CAP publishers and subscribers to validate the scientific measures - task B.5 depends on this task

  • The scientific measures are exchanged through CAP <parameter> elements
  • API should parse the elements and then validate their conformity

(B.5) Test the validation Programmers from the four CAP-enabled software tools would submit their <parameter> element data through the API to match with an existing object and property.

(B.5) The individual CAP-enabled software tools can exchange various CAP messages with <parameter> element values and the cross validated with the Sahana-Eden validation service.

(C) Emulating the Alerthub

(C.1) Build an API in the Sahana-Eden CAP Broker that would allow for authorized users to register a CAP message contained Atom/RSS feed.

(C.2) Let the four other CAP-enabled software tools register their CAP RSS/Atom feeds

(C.3) Integrate the Crisis Mapping module (GSoC 2014) to enable visualization of the CAP messages received from the other four CAP-enabled software tools

(C.4) Offer the service in Sahana-Ede demo site as a tool for a CAP implementer to use Sahana-Eden Alerthub Emulator for testing before directly integrating real-live feeds with Google’s Alerthub. The intent is to use the Sahana Eden Crisis-Mapping module in the CAP Code-fest. It will work as an Alerthub Emulator by allowing registered users to integrate their RSS/Atom feeds through a simple form.

Team Roles

A "team" comprises several members with varied skills and expertise. Essentially the participants will be a blend of Disaster Management (DM) and Emergency Communication experts. A few observes but with a vested interest in DM will be among the participants. When you REGISTER specify your anticipated role or the capacity in which you would like to contribute.

Each CAP-enabled software tool can be used by each team. We have identified several essential team roles that would help a team fulfill the coding activities.

Role Description
IRC - each team must designate, at least, one person to communicate with members of other teams and the code-fest organizers through the IRC channel (#sahana-meeting). Any exchange of instructions, literature surveys, code snippets, or discussions will happen on the IRC channel.
Tech writers Technical writer(s) who would document any notes, blueprints, user guides or other relevant information in Hackpad, Wiki, Google Docs, etc
Programmers - Software programmers competent working with any of the source code in the CAP-enabled software tools are essential. They will communicate with Domain Experts and Code-fest Program Committee determine the solutions for the given objects. Some of you may be inclined to work on Quality Assurance with some testing. However, designating, at least, one member for testing would ensure bug free code for other teams to reliably adopt
Content developers - Skilled resource persons who can develop a "pictograph" for example or construct a warning message or any other relevant content; these tasks may be com bined with the CAP Expert
CAP Experts - each team will have, at least, one person exposed to the CAP standard. Several members, participating in the CAP Jump Start and CAP Implementation Workshops will be participating in the Code-fest. They will contribute to the design and testing of the three objectives.
DM Experts - Disaster Management personnel can contribute to the design and testing. The main responsibility would be to determine the usability as well as provide inputs through online research or share their knowledge.
Observers - those who are not keen in taking on a team responsibility but are willing to share some labor and become a positively reinforcing lurker.
  1. Dominic Konig, AidIQ Systems Architect
  2. Francis Boon, AidIQ Technical Director and Sahana Software Foundation Product Development Committee Chair
  3. Chamindra De Silva Director Virtusa Corp and Director Sahana Software Foundation
  4. Ramindu Deshapriya Senior Engineer Virtusa Corp and Member Sahana Software Foundation
  5. Eliot Christian, CAP Program Committee Chair and Special Scientific Adviser to World Meteorological Organization
  6. Elysa Jones Chair OASIS Emergency Management Technical Committee
  7. Nuwan Waidyanatha, Senior Research Fellow LIRNEasia and Sahana Software Foundation Director and Standards & Interoperability Program Committee Chair
  1. Nuwan Waidyanatha, Sahana Software Foundation Standards & Interoperability Chair and LIRNEasia Senior Research Fellow
Note: See TracWiki for help on using the wiki.