Vesuvius Project Ideas - Google Summer of Code 2014

Import Wizard for Missing and Found Persons

Mentor-Provided Section

Pre-Proposal Idea Description, 1st Q 2014

Knowledge required: Javascript, web design. Helpful: SUDS javascript library for SOAP calls, PHP

During disaster events, data is managed in many different formats. Spreadsheets are predominantly used to store data in these situations. This project aims to create an import wizard for Vesuvius that will be able to import missing-person structured data from such sources.

The Vesuvius “PFIF” module permits bulk exchange of records about persons lost and found, e.g., with Google Person Finder. However, sometimes bulk person data comes in other forms, for instance, as an Excel spreadsheet in the case of the Joplin, Missouri tornadoes. We would like to provide a GUI wizard, like that used in Microsoft Office products to flexibly import tabular data for record creation, but be easier for non-programmers to use than, say, XSLT. The wizard would allow import from common file formats (tab-separated text, comma-separated text, Excel, etc.). It would allow mapping of input columns to crucial Vesuvius input fields. This mapping includes column skipping, flexible ordering, and missing-data fill-ins.

If time allows, other transformations are desirable: within-column (e.g., case adjustments, enumeration mapping) and cross-column (e.g., string merging and splitting).

March 9 Update: the architecture for this wizard has been reconsidered, as described here

It draws on javascript and client web-service skills, and far less on PHP/SQL skills as originally conceived. There are some scope simplifications as well. The foregoing doc does not address the UI design, and making sure its flexible and responsive. It is suggested that the import wizards available in spreadsheet programs (e.g., traditional MS Excel) may provide inspirations.

Mentors : Greg Miernicki (Javascript/HTML/CSS, SUDS, web service calls, PHP), Glenn Pearson (domain, UI design, web service calls)

Suggestion for Plan Revision, April 2014

Based on Glenn & Greg Chat -

We'd like the 2nd & 3rd trimester work swapped, so that the first use of web services occurs at lot earlier in the process. So put the SUDS client work sooner. Begin with a new Vesuvius branch/instance, from

https://github.com/sahana/vesuvius/tree/master/vesuvius/

This contains (in mod/plus) version 24 of PLUS web services.

Then create a new module with initially just 2 buttons: “Send” and “Reset”. Both would use web service client code (e.g., SUDS) to call PLUS web services. Send would just send an embedded ReUnite style record (REUNITE4 format), and get back a unique ID (uuid), which would have to be remembered (eventually there will be a list of these). “Reset” would delete/expire the record (given the uuid), so it could be potentially sent again (resulting in a different uuid). “Reset” is just for the test harness, not the ultimate UI.

Then a series of milestones:

  • Instead of an embedded report, read a single tab-separated line (in ReUnite order) from a file. (Add a browse button, field with filename path)
  • read multiple tab-separated lines from a file (calls the reporting web service multiple times; gets back multiple uuids; Reset has to delete them all)
  • read multiple tab-separated lines with a header line (read the headers & cotents into some data structure, e.g., an array)
  • read the lines in scrambled column order (then auto-swap array columns, based on header content and desired output order)

and then, continuing through the 3rd trimester, on to the more complex UI with user interaction to choose columns, conversions, etc.

Student-Provided Section


QR Code
QR Code agasti:vesuvius:gsoc2014:importwiz (generated for current page)