Vesuvius Project Ideas - Google Summer of Code 2013

Native Synchronization between Vesuvius Instances

Mentor-Provided Section

Background, Spring, 2013

Original Introduction from the Ideas Page

at Pre-Award GSoC 2013 Ideas

Platform Vesuvius
Mentors Chamindra de Silva, Greg Miernicki
Preferred communication emails, Skype(Chamindra), G+ (Greg)
Brief description/Usage Scenario Instances of Vesuvius (say, in different cities or hospitals) can currently interchange missing/found person data using the PFIF protocol, but that exchange is lossy and requires a Google Person Finder go-between. The proposed task would implement direct lossless two-way interchange. The should be multiple exchange channels to support fault tolerance (e.g. if there is no network or just a USB connection)
Skills needed PHP, SOAP
Blueprints GSoC 2013 - Native Synchronization between Vesuvius Instances
Acceptance conditions Demonstration of exchange of missing person and displaced/shelter person data between Sahana instances. Confirmation that all specified data has been exchanged. Help documentation for a user on the WIKI. Good code quality including well commented code, secure code
Other resources

Other comments

A straightforward mechanism, that would work securely over the Web without requiring a private channel, would involve serializing/deserializing existing “PHP Data Objects” that wrap Sahana tables. A simple configuration could be master/slave with periodic one-shot synchronization. A more challenging situation is on-going transactional synchronization/merge between two masters in the face of intermittent connectivity. Conflict resolution will also need to be managed.

(more to come)

Student-Provided Section


Sahana is a disaster management system, Sahana includes missing/found person data collection during the disaster period, so that people could able to report persons to the system it could help others to manage and find out missing people. Sometimes people/organizations want to sync missing/found person details between various instances, currently this process is lossy and requires a Google Person Finder go-between. So this project targets to reduce the complexity and get the synchronization more easily without lot of human interaction.


Privileged User: Admin of instance or some more control user.

Goal & actions: User can able to create synchronization with other instances, then at the other end System Admin will get a notified mail saying this particular instance wants to sync these (incident/event) details with your instance.

Later if callee (slave) instance admin wish to accept the request then, he/she can perform acknowledged action which leads to end the configuration for Native sync.


Establish the sync configuration.

  • Sync default page.
  • Button shows to create new synchronization which promts to new sync configuration page.
  • Table shows already configured entries.
  • Click on a table entry will leads to new page shows more detail about configuration.

Edit configuration setting

  • Callee system admin can perform acknowledged message to say he/she approve the sync.
  • Master system admin can able to perform synchronization between other instance.
  • Master able to edit the sync configurations.

Email sending

  • While master configuring the sync request to other (slave) instance, slave instance admin will get a pop message from the system.

Developer Guide

  • Sync module contains all the user/machine interaction parts are developed in root/mod/sync/
  • Some more soap API calls implemented in plus package v29 detail view.

Resource pages

QR Code
QR Code agasti:vesuvius:gsoc2013:nativesync (generated for current page)