Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
agasti:vesuvius:start [2013/04/16 16:54]
ramindud Added link to Vesuvius installation instructions
agasti:vesuvius:start [2014/11/11 22:41]
greg [Contacts for the Vesuvius Trunk]
Line 1: Line 1:
-**[[agasti:start|Agasti]]** +**[[agasti:start|Agasti - Vesuvius Products and Projects]]** 
-====== Welcome to Sahana Agasti's "Vesuvius" Branch ======+====== The Vesuvius Trunk ======
  
 ===== What is Vesuvius? ===== ===== What is Vesuvius? =====
-{{ :agasti:vesuvius:vesuvius.png?150|}}Vesuvius continues a lineage from Krakatoa, and is being developed further primarily by the US National Library of Medicine (NLM). This effort is mainly concerned with improving family reunification and administrative capabilities, developing a robust code base, and exploring mobile technologies. The project is driven by international responses such as the Haitian earthquake of 2010, and US-hospital-focused triage needs. Some modules inherited from earlier have been recently [[http://lostpersonfinder.wordpress.com/2011/01/13/agasti-vesuvius-module-segregation/|deprecated as not supported by NLM, and removed from the trunk into an external branch]]. (Interested doing the programming needed to bring particular ones back to life for Vesuvius? NLM will be happy to work with you.) Other modules are new, or represent a substantially re-engineering of earlier work. During the Google Summer of Code 2010, Vesuvius was used as a testbed for prototypes of a Module Manager and Sahana App Store.+{{ :agasti:vesuvius:vesuvius.png?150|}}Vesuvius continues a lineage from Sahana Krakatoa. This effort is mainly concerned with improving family reunification and administrative capabilities, developing a robust code base, and exploring mobile technologies. The project is driven by international responses such as the Haitian earthquake of 2010, and US-hospital-focused triage needs.
  
-===== For Developers - Vesuvius in the Sahana Evolutionary Tree ===== +//For More// 
-Created in response to the 2004 tsunami, Sahana built a web site using the PHP programming language.  Capabilities were expanded during "Phase 1" releases, 0.1 to 0.5.  These releases were superseded by "Phase 2", as 0.6.x.  By 2009, this was bifurcated into a "stable" branch and a more-experimental trunk branch, which eventually was known as 0.9.x.  In mid-2010, a new nomenclature was adopted.  Active branches of "Agasti", the part of Sahana based on PHP web technology, were given the names of well-known volcanoes.  The "stable-0.6" branch was recast as "Krakatoa" New development subsequently took two forms: +  * [[agasti:history|A Brief History of Vesuvius and Other Agasti Products]]
-  * "Vesuvius" continues the major evolution of selected parts of the 0.9.x trunk branch (now moving towards 1.0).  It introduces database referential integrity and more object-oriented code libraries.  It is available to developers in unpackaged form from the repository, with packaging planned. +
-  * "Mayon" (designated 2.x) restructures Sahana functionality, based on the Symphony PHP framework.  This is described elsewhere. +
- +
-In January, 2011, Vesuvius was slimmed down, and made of more-focused functionality, by removing from the trunk repository those [[agasti:vesuvius:deprecated | modules lacking support, and thus deprecated]].  All the code for these is still available elsewhere, if someone wishes to revive them. +
- +
-==== NEW! (February, 2013) ==== +
-Check out [[GenealogyVesuvius2010-12|this diagram of the "Genealogy of Vesuvius"]] during 2010-12, and some ideas for its further evolution in 2013.  It covers People Locator and Kilauea.+
  
 ===== For Developers Seeking Access or Considering Being a Contributor to Vesuvius ===== ===== For Developers Seeking Access or Considering Being a Contributor to Vesuvius =====
  
-Currently, most Vesuvius 0.9.x beta development goes on in-house at NLM. The code has been pushed to [[https://code.launchpad.net/vesuvius|Launchpad/Vesuvius]], where it is appropriately spread amongst the various Bazaar branches therein. See the [[https://docs.google.com/document/pub?id=1mBJpj-u4aJaZfibYIOqYL85GjsSmB_w-0B3YL3fE8DM|preliminary checklist for accessing the codebase and working with Bazaar]]. +Source code for Vesuvius 0.9.x development may be found as:
- +
-Packaged releases with an installer are anticipated during 2012; some final work must first be completed on the last few remaining bugs in the installer. A [[agasti:vesuvius:install|preliminary page for Vesuvius installation information]] has been created. +
- +
-Developments in this project are reported to the sahana-agasti listserv, and through periodic postings to the unofficial [[http://lostpersonfinder.wordpress.com/|Lost Person Finder blog]], among other places.  The freenode IRC channel #sahana-agasti facilitates cross-fertilization between Vesuvius and Mayon. +
- +
-Main Developer Contacts: +
-  * Greg Miernicki - miernickig <at> mail <dot> nih <dot> gov - Lead module & web services developer/database architect; Agasti PMC +
-  * Leif Neve - lneve <at> mail <dot> nih <dot> gov - Dev for PFIF module; MySQL DBA +
-  * Glenn Pearson - Glenn_Pearson <at> nlm <dot> nih <dot> gov - LPF Project co-lead; Agasti PMC, Standards PMC +
-  * Full LPF project group - NLMLHCCEBLPF <at> nlm <dot> nih <dot> gov +
- +
-LPF Project Management, Non-Sahana: +
-  * Michael Gill - Federal oversight; network engineering. +
-  * Sameer Antani - Image R&D; ReUnite +
-  * George Thoma - Chief, Communications Engineering Branch, LHNCBC/NLM/HHS +
- +
-Other Current PL/Vesuvius Developers: +
-  * Lan Le - Statistics and charting module +
-  * Joseph Chow - database, HIPAA issues +
-  * Mike Chung - graphic designs +
- +
-Developers of NLM-Created Tools and Peripheral Software: +
-  * Glenn Pearson - Lead dev for Windows app "TriagePic" +
-  * Byte Phichaphop - Dev for iPhone app "ReUnite" 3.0 +
-  * Eugene Borovikow, Girish Lingappa - Image R&D +
-  * Tehseen Sabir - QA, Notification tools +
- +
-Other current and past contributors are listed further below. +
- +
-[[agasti:vesuvius:install|=== Vesuvius Installation Instructions ===]] +
- +
-===== Google Code-in ===== +
- +
-Sahana has been selected as one of the mentoring organizations for [[http://www.google-melange.com/gci/homepage/google/gci2012|Google Code-in (GCI) 2012]]. GCI is an annual competition hosted by Google to involve pre-university students from around the world with reputed Open Source communities.  +
- +
-  * GCI + Sahana Home Page: [[community:gci:start|Sahana Google Code-In Program]] +
-  * Sahana Vesuvius Task Ideas page for GCI 2012: [[agasti:vesuvius:gci2012|Ideas for Google Code-in 2012]] +
-  +
- +
- +
-===== Opportunities for Summer and Year-Long Internships at NLM in Bethesda, MD ===== +
-For US citizens and permanent residents, there are competitive paid internship opportunities for local high school, undergrad, graduate, and post-docs on-site at NLM.  Volunteer positions are also possible.  We are looking particularly for folks with programming experience.  Besides the Lost Person Finder project, our branches of NLM (Communications Engineering Branch and Computer Sciences Branch) have a number of other projects; those with coursework or experience in image processing, document understanding, and natural language understanding are particularly invited to consider us. +
- +
-[[https://www.training.nih.gov/programs/sip|Summer student positions at NIH]] are applied for in January/February of each year.  We at NLM will review applicants but only after they have submitted their NIH application. +
- +
-===== For Adopters and Users ===== +
- +
-==== Icon Definitions, used in the Tables Below ==== +
- +
-Stage of Development (as of 1st Q 2012): +
- +
-^  Icon  ^  Meaning  ^   +
-|  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | Stable, only minor development on-going +
-|  {{:agasti:vesuvius:active_dev.png}}  | Under active development +
-|  {{:agasti:vesuvius:new_unstable.jpg}}  | New & unstable +
-|  {{:agasti:vesuvius:planned_for_2012.gif}}  | An idea for the coming year  | +
- +
-Required versus Optional: +
- +
-|  {{:agasti:vesuvius:required.jpg}}  | Required +
-|  {{:agasti:vesuvius:optional.gif}}  | Optional +
- +
-Other Attributes: +
- +
-|  {{:agasti:vesuvius:daemon.png}}  | Includes cron-job daemon, init service, or 3rd-party engine +
-|  {{:agasti:vesuvius:separate_install.png}}  | Separate install from Vesuvius +
- +
- +
-History: +
-|  {{:agasti:vesuvius:gsoc_2011.gif}}  | Derived from a Sahana-sponsored Google Summer of Code 2011 project +
-|  {{:agasti:vesuvius:gsoc.jpg}}  | Derived from a Sahana-sponsored Google Summer of Code 2010 or earlier project +
-|  {{:agasti:vesuvius:krakatoa.jpg}}  | Successor to a Krakatoa module of the same name.* +
- +
-* Vesuvius modules may have more and different features and capabilities than what are described in the [[agasti:krakatoa:start | Krakatoa table of User Guides]].  Beyond those modules indicated by this icon, many modules have some design or code influence from earlier Sahana versions. +
- +
- +
-==== Modules of the Vesuvius Beta Release ==== +
-{{:agasti:vesuvius:nlm.gif}} +
-{{:agasti:vesuvius:lpf_2-person_logo.gif}} +
- +
-The items in the table below are supported by NLM as part of its Lost Person Finder project.  This set of items can be called "[PeLo]", referring to People Locator.  Available modules are given by their formal names, as well as their technical abbreviations, sometimes helpful to know. +
- +
-^  Name  ^  Abbrev.  ^  Req?  ^  Brief Description  ^  Stage  ^  Comments +
-|  Administration  |  admin  |  {{:agasti:vesuvius:required.jpg}}  | This allows initial and on-going system configuration and control.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | {{:agasti:vesuvius:krakatoa.jpg}} +
-|  User Preferences  |  pref  |  {{:agasti:vesuvius:required.jpg}}  | This permits user-specific settings.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | {{:agasti:vesuvius:krakatoa.jpg}} +
-|  XML Streaming Module  |  xst  |  {{:agasti:vesuvius:required.jpg}}  | Allows streaming of XML content.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | {{:agasti:vesuvius:krakatoa.jpg}} +
-|  Arrivals  |  arrive  |  {{:agasti:vesuvius:optional.gif}}  | AJAX modue to watch the realtime influx of persons.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  |  | +
-|  LPF Class Library  |  lpf  |  {{:agasti:vesuvius:required.jpg}}  | This defines PHP classes used by multiple modules.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | Needed most notably by arrive, eap, em, eq, ha, inw, mpres, plus, pop, pref, rap, report, rez | +
-|  Hospital Administration  |  ha  |  {{:agasti:vesuvius:required.jpg}}  | This allows hospital administrators/emergency managers to enter & edit organizational & event data.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}} | v2.0 completed recently with a snazzy new ajax appearance | +
-|  Search  |  inw  |  {{:agasti:vesuvius:required.jpg}}  | (Interactive Notification Wall) This offers search and display capabilities (including filtering and dynamic update) for missing and found persons reported from multiple sources (desktop web, mobile web, PFIF repository, TriagePic, ReUnite app) as replacement) to the old MPR module's search function.  |  {{:agasti:vesuvius:active_dev.png}}  | Projected work involves search improvement by integration with Lucene/SOLR search engine; more flexible filters. +
-|  MPR Email Service  |  mpres  |  {{:agasti:vesuvius:optional.gif}}  | The Missing Person Registery Email Service parses incoming information about missing & found people from TriagePic (Windows), ReUnite (iPhone), and semi-structured (vanilla) email.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | {{:agasti:vesuvius:daemon.png}}  Supplements the work of Person Object Provider (pop). +
-|  Person Locator User Services  |  plus  |  {{:agasti:vesuvius:optional.gif}}  | Provides SOAP Document Literal web services, to support ReUnite, TriagePic, and other applications that wish to report or consume data from Vesuvius.  |  {{:agasti:vesuvius:active_dev.png}}  | In constant fdevelopment lately : https://pl.nlm.nih.gov/plus | +
-|  Event Manager  |  em  |  {{:agasti:vesuvius:required.jpg}}  | This allows a hospital admin or Sahana admin to define and geolocate disasters/incidents/events.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  |  | +
-|  Resources  |  rez  |  {{:agasti:vesuvius:required.jpg}}  | This defines the content of the home and other web pages.  It supports largely static web pages of information, arranged hierarchically, by a mini-content-management-system.  HTML content is stored in the database, with a simple editor for the content provider.  |  {{:agasti:vesuvius:active_dev.png}}  | Currently building out multi-language support, for context-rich whole-page translations (rather than Pootle-style phrase translation). +
-|  Snapshot module  |  snap  |  {{:agasti:vesuvius:optional.gif}}  | This allows backup and restore of database instances, provided they are under 200MB.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | Requires admin privileges. +
-|  Post Office Provider  |  pop  |  {{:agasti:vesuvius:required.jpg}}  | This handles outbound email.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | Takes over some of the 2009 functionality of mpres namely outbound email. +
-|  Report  |  report  |  {{:agasti:vesuvius:required.jpg}}  | This is based on and supersedes mpr's 'report a person' |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | Simply creates a 'stub' person record which is then handed off to EAP to edit. | +
-|  Edit a Person  |  eap  |  {{:agasti:vesuvius:required.jpg}}  | For a previously-reported person, whose record is retrieved, this allows revision or expansion. One view will support the use case of hospital personnel correcting data originally received from TriagePic.  |  {{:agasti:vesuvius:active_dev.png}}  | Based on and supercedes part of mpr.  | +
-|  Edit a Person 2  |  edit  |  {{:agasti:vesuvius:required.jpg}}  | A complete re-write of the above EAP module using AJAX and DAO class objects provided by the LPF module. Will incorporate a myriad of new features.  |  {{:agasti:vesuvius:new_unstable.jpg}}  | Based on and supercedes EAP once complete. +
-|  Flash Camera Picture Taking  |  cam  |  {{:agasti:vesuvius:optional.gif}}  | Using Flash/Shockwave technology, this allows controlled capture of a photo from a webcam.  |  {{:agasti:vesuvius:active_dev.png}}  | Based on earlier Sahana framework code, modularized. +
-|  Expiry Queue  |  eq  |  {{:agasti:vesuvius:optional.gif}}  | This allows the management of record expiration requests made by users without sufficient privileges to manually expire records.  |  {{:agasti:vesuvius:new_unstable.jpg}}  | Intended for admins. +
-|  Abuse Queue  |  aq  |  {{:agasti:vesuvius:optional.gif}}  | This allows the management of reported abuse cases.  |  {{:agasti:vesuvius:new_unstable.jpg}}  | Intended for admins. +
-|  Statistics  |  stat  |  {{:agasti:vesuvius:optional.gif}}  | For a particular event, this will provide all-person data in tabular and graphical form, categorized by time, status, and other features.  |  {{:agasti:vesuvius:new_unstable.jpg}}  | Analogous to hospital dashboard displays, it will offer cumulative and time-based views. +
-|  TriagePic Module  |  tp  |  {{:agasti:vesuvius:optional.gif}}  | This exposes a face for the download of the TriagePic application for hospital personnel.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  |  | +
-|  People Finder Information Format  |  pfif  |  {{:agasti:vesuvius:optional.gif}}  | This supports supervision of data import/export in PFIF 1.2, 1.3 formats with accompanying photos.  |  {{:agasti:vesuvius:stable_most_dev_done_.jpg}}  | {{:agasti:vesuvius:daemon.png}} Some of this functionality was previously within mpr.  | +
- +
-==== Third-Party Libraries Needed by Vesuvius ==== +
- +
-^  Name  ^  Version (as of Jan 2012)  ^  From  ^  Separate Install?  ^  Dependent Modules  ^  Comments +
-|  ADODB  |  5.14  |  http://adodb.sourceforge.net/  |  Included  |  required by framework  |    | +
-|  BrowserCaps  |  0.7  |  http://garetjax.info/projects/browscap/  |  Included  |  required by framework  |    | +
-|  Feedwriter  |    |  http://www.ajaxray.com/projects/rss  |  Included  |  required by PFIF module  |    | +
-|  HTML Purifier  |  4.3.0  |  http://htmlpurifier.org/  |  Included  |  required by framework  |    | +
-|  NuSOAP  |  0.9.5  |  http://sourceforge.net/projects/nusoap/  |  Included  |  required by PLUS module  |    | +
-|  PHP-Console  |  1.1  |  http://code.google.com/p/php-console/  |  Included  |  optional for debugging purposes  |    | +
-|  PHPMailer  |  5.1  |  http://phpmailer.sourceforge.net  |  Included  |  required by POP module  |    | +
-|  SOLR  |    |  http://lucene.apache.org/solr/  |  {{:agasti:vesuvius:separate_install.png}}  |  optional search enhancement for INW module  |  {{:agasti:vesuvius:daemon.png}} +
-|  XAJAX  |  0.2  |  http://xajax.sourceforge.net  |  Included  |  required by framework  |    | +
-|  ffmpeg  |  v0.6+  |  http://ffmpeg.org/  |  {{:agasti:vesuvius:separate_install.png}}  |  required by LPF module  |    |+
  
-===== A Tip of the Hat to our Recent Volunteer and Student Contributors =====+  * The [[https://github.com/sahana/vesuvius/releases/tag/v0.9.2|latest “packaged” trunk release, 0.9.2]], for which a manual installation document (though no installer) is provided. 
 +  * The  [[https://github.com/sahana/vesuvius|trunk itself]], which has code commits substantially beyond the package.
  
-=== Our Students at NLM, Summer 2011 === +Sources for updates include: 
-  * Owen Royall-Kanih worked with an NLM instance of Google'open-source Person Finder, as a testbed for PFIF import/export, plus developed new-event alerting code, contributed back to Google+  * occasional selected code pushes from NLM'People Locator project; the code is appropriately spread amongst the various Bazaar branches
-  * Michael Bulgakov developed missing/found-person artificial-data generators+  * Sahana Google Summer of Code student branches
-  * Returning student Chase Bonifant created system diagrams and documentationimproved NLM's internal project website and wiki, and (during winter break of 2011/12) organized a draft continuity of operations plan. +  * New efforts from VirtusaInc. and other potential contributors.
-  * Joy Frazier documented the triage process, and investigated applicability of social media/crowd-sourcing tools.+
  
-=== During the Sahana 2011 'Google Summer of Code' === +//For More// 
-{{:agasti:vesuvius:gsoc_2012.gif}} +  * [[agasti:vesuvius:install|Vesuvius Installation Instructions]] 
-  * Ramindu Deshapriya worked on [[agasti:vesuvius:multilingual_2011|Pootle Re-integration and Multilingual Support]] +  * [[agasti:vesuvius:modules|The Modules of Vesuvius]]
-  * W. A. Chinthaka Rukshan Weerakkody developed [[agasti:installer|a Shared Installer (jointly with Mayon)]]+
  
-=== During the Sahana 2010 'Google Summer Of Code' ==+===== Discussions and Bug Reports =====
-{{:agasti:vesuvius:gsoc.jpg}} +
-  * Kusum Madarasu developed a [[agasti:vesuvius:module_manager|Module Manager for Vesuvius]].  Kusum was mentored by Greg Miernicki, Glenn Pearson, and Chamindra de Silva. +
-  * See also: the related [[agasti:vesuvius:req_app_store|Sahana App Store concept]], that Kusum experimented with.+
  
-=== During Random Hacks of Kindness 1.0, in Washington, DC === +Developments in this project are reported to the sahana-agasti and discuss listservs, among other places.  The freenode IRC channels #sahana-agasti and #sahana-meeting facilitate cross-fertilization.
-Volunteer Developers working with TriagePic: +
-  * Emad Ibrahim integrated a Webcam View/Image Capture window. +
-  * Jeff Bobish added a picture viewer to the Outbox. +
-Volunteer Developers working with ReUnite: +
-  * Vicky & Ryan Somma rapid-prototyped an Android version. +
-Also helping with concepts and contacts: Kumar Rangasamy & Ari Kaliannan+
  
-=== Our Students at NLM, Summer 2010 === +Bug reports are also handled [[https://github.com/sahana/vesuvius/issues|on GitHub issue tracker]].
-  * Chase Bonifant developed large-format system and workflow diagrams. +
-  * Hyen Guan prototyped image duplication and face detection software. +
-  * Bathiya Senevirathna created and improved the "Found in Haiti" iPhone app, later called "ReUnite".+
  
-===== Developer Alumni ===== +===== Contacts for the Vesuvius Trunk ===== 
-  * Merwan Rodriguez - PL Graphical user interface, Ajax (particularly filters, results popups), SOLR search engine and MySQL search through September, 2011; +Vesuvius Branch Manager and chair of the Vesuvius subcommittee of the SSF Products PMC 
-  * Anantha Bangalore - Bluetooth R&D, Haiti earthquake meta-search, through July, 2010 +  * Ramindu Deshapriya ([[http://lk.linkedin.com/in/rdeshapriya|with LinkedIn Profile]])
-  * Ajay Kanduru - Haiti earthquake screenscrape from CNN iReports, initial SOLR integration+
  
-===== Source Code and Bug Reports ===== +Main SSF-Member Web Site Developer Contact at NLM 
-Source code for the above PeLo modules is available [[https://code.launchpad.net/~sahanaphp-committers/sahana-agasti/vesuvius-trunk|on Launchpad]].  Additional experimental or student modules, not integrated into the trunk at this time, can be found in other repository branches.  Some NLM work under active development has not yet been pushed to the trunk.+  * For other NLM contacts, see Vesuvius and People Locator.
  
-Bug reports are also handled [[https://bugs.launchpad.net/vesuvius/+filebug|on Launchpad]]. 
  
-===== For More ===== 
-NLM's involvement with Sahana began in 2008, through one of [[http://wiki.sahanafoundation.org/doku.php/deployments:nlm-bhepp|a group of projects for the Bethesda Hospitals Emergency Preparedness Partnership (BHEPP)]].  October, 2009, saw the [[http://wiki.sahanafoundation.org/doku.php/deployments:bethesda_2009|first alpha pilot by BHEPP during the CMAX 2009 exercise]].  A further iteration was tested again a year later during CMAX 2011. 
  
-Over time, additional appropriate "Phase 2" content will be moved here and freshened.  For now, [[http://wiki.sahanafoundation.org/phase2/doku.php|go to phase2]]. 
  
  
  

QR Code
QR Code agasti:vesuvius:start (generated for current page)