Vesuvius/Kilauea Merge

Mentor-Provided Section

Spring, 2013

Original Introduction from the Ideas Page

Merge Kilauea and Vesuvius Trunks

Platform Kilauea / Vesuvius
Mentors Ramindu Deshapriya, Dilantha Silva, Alexandros Katechis
Preferred communication IRC #sahana-meeting; e-mail to discuss@sahanafoundation.org
Brief description/Usage scenario Full merging of Vesuvius and Kilauea code bases into single trunk. Deployment settings (like Eden) will determine front-end functionality (missing persons, shelter registration, staff registration, etc.). This would imho greatly broaden the potential user base for both of these products, which otherwise will remain highly customized for a single customer and likely not adopted by other organizations.
Skills needed PHP, AJAX
Blueprintsagasti:vesuvius:gsoc2013:vesuviuskilaueamerge
Acceptance conditionsMerge of CRS, SRS and FMS modules from Kilauea in to Vesuvius, integration of Vesuvius programming concepts in to Kilauea modules, ability to deploy working copy of Vesuvius with Kilauea functionality
Other resources
Comments
Milestones
  • Early July: The decision was made to integrate XAJAX to build in Vesuvius functionality in to the modules being brought in from Kilauea. lib_forms was used to generate forms, providing added functionality to the forms found in Kilauea.
  • Late July - Early August: Client Module integration completed with reusable functions for shelters and facilities implemented.
  • Mid-Term Evaluation: Client module integrated, Facilities and Shelters module integration in planning stages
  • Early September: Shelter and Facilities registry modules integrated, debugging in process
Major Issues
  • Incompatibility between Vesuvius and Kilauea tables : Kilauea uses the same person tables as Vesuvius to store Client data and to generate searchable database views. However, for these views (and by extension, search) to work, some extra fields added in Kilauea must be present in the Vesuvius database. To maintain integrity between versions of Vesuvius, it was decided to update the views to reflect Vesuvius's person tables.
  • Search and pagination using AJAX : Kilauea uses AJAX heavily to handle searching and pagination. The decision was made to integrate the Javascript used for this as XAJAX functions.

Student-Provided Section

Introduction

Currently the Vesuvius and Kilauea are exist as two separate products and they have two different trunks. This projects aim is to merge Vesuvius and Kilauea code bases in to single trunk. This will add the front-end functionalities like (missing persons, shelter registration, staff registration, etc.) to the Vesuvius. This will increase the potential user base for both of these products, which otherwise will remain highly customized for a single customer and likely not adopted by other organizations.

There are many mismatches between the two products in terms of implementation so the direct merge of modules will not work. As to preserve the consistency through out the Vesuvius it is necessary to change the Kilauea module implementation pattern to the Vesuvius. HTML forms and ajax requests will be replaced with the forms written using lib_form.inc and xajax.

Integration Details

During the merge the following functionalities of the Client, Staff and Facility modules were integrated in to the Vesuvius code base. Integration was done while preserving the consistency with the Vesuvius UIs and the implementation patterns.

Client Module:

  • Introduction to the Client module
  • Add client to the shelter registry
  • Search client in the shelter registry
  • Edit a Client in the Shelter
    • View Client
    • Edit Client
    • Add/List/Edit/Delete Pet
    • Client Timeline
    • Client Check-in/Checkout
    • Client Transfer

Staff Module:

  • Introduction to the Staff Module
  • Register Staff
  • Search Staff
  • Edit Staff
    • View Staff
    • Edit Staff
    • Staff Timeline
    • Staff Sign-in/Sign-out
    • Staff Transfer
  • Settings
    • Organization Names
    • Volunteer Statuses
    • Staff Types

Facility Module:

  • Add Facility
  • Edit/Delete Facility
  • Search Facility
  • Display Map

Project Source Code

The source code was checked in to the bazaar branch of Vesuvius. The master branch changes can be directly pulled and merged with the branch.

Launchpad branch - https://code.launchpad.net/~kaushikaruk/vesuvius/vesuvius

Resource Pages


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