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
Objectives
Walk away with functional requirements
- 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.
- Discussion on the design of the "FIA Reference Service" - quick evaluation of the data model and APIs intended to access event_type and action_oriented pictographs
- Enhance GUI for displaying the pictograph for a CAP message (making use of the FIA reference service)
- Design towards an ontology for validating event (sensor) data use the earthquake dataset as a basis for exchanging sensor data between the Caribbean, Indonesian, PTWC, like seismic monitoring centres. Then integrate with the CAP <resource> for exchanging the data.
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 |
Google CAP library (includes CAP validator) | Java | (see project page) | https://code.google.com/p/cap-library/w/list |
Intended coding and non-coding related activities
(A) Pictographs database and APIs
NON-CODING:
(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
CODING
(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
NON-CODING
(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
CODING
(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. |
Facilitators
- Dominic Konig, AidIQ Systems Architect
- Francis Boon, AidIQ Technical Director and Sahana Software Foundation Product Development Committee Chair
- Chamindra De Silva Director Virtusa Corp and Director Sahana Software Foundation
- Ramindu Deshapriya Senior Engineer Virtusa Corp and Member Sahana Software Foundation
- Eliot Christian, CAP Program Committee Chair and Special Scientific Adviser to World Meteorological Organization
- Elysa Jones Chair OASIS Emergency Management Technical Committee
- Nuwan Waidyanatha, Senior Research Fellow LIRNEasia and Sahana Software Foundation Director and Standards & Interoperability Program Committee Chair
Footnotes
- Nuwan Waidyanatha, Sahana Software Foundation Standards & Interoperability Chair and LIRNEasia Senior Research Fellow