Vesuvius Project Ideas - Google Summer of Code 2013

Demo Instance(s) of Vesuvius

Mentor-Provided Section

Background, Spring, 2013

Original Introduction from the Ideas Page

Demo Instance(s) of Vesuvius

Platform Vesuvius
Mentors Dilantha Silva
Preferred communication IRC, G+, Email
Brief description This would be a “kick the tires” instance for the benefit of potential adopters. It would include access as admin, hospital admin, and hospital staff. It would be a limited-lifetime instance that would periodically be rebooted and set to default database contents. A more sophisticated version would provide a separate instance per customer, perhaps with some simple startup customization, e.g., to set the title string to something chosen by the customer. This would be hosted on an SSF site (rather than NLM).
Skills needed PHP, shellscripts/cron jobs
Blueprints GSoC 2013 - Demo Instance(s) of Vesuvius
Acceptance conditions
Other resources Somewhat-related idea: Installer
Comments Chamindra: Can we make this a turnkey Link VM? Louiqa: This seems more like a task not a summer project? Perhaps combine with [another project like the Disaster-Specific Resources Pages]? Glenn: Louiqa, this idea also requires developing the default database contents, maybe with a wizard so that the adopter can select what sort of example content (if any) should be preloaded. Probably needs a guide document or video too. There's some interest in defining less-expansive tasks this year, to get a more complete and polished result rather than a 2/3rds done result.

Other Comments

Student-Provided Section


The project aims at building the 'Demo instance(s)’ of Vesuvius so that potential adopters of the project get to have a test run before their final deployment. The main outcome of the project is thus to increase the number the potential users of the system as well as to increase the ease with which they can adopt to the system. Currently there is no such framework where the end user can test the Vesuvius environment before becoming a persistent user. The project aims at building this.


The work flow of the project is as follows

  • The registered user requests for a demo instance. Details like organisation name and location needs to be provided. A registered user can request only one instance at a time.
  • The Vesuvius admin gets a notification about a pending requests. And accordingly reviews the request and creates an instance. This is done with the help of a shell script running at the background. He also sets the time limit for the particular instance.
  • The user gets notification about the created instance. Gets the details like URL and username, password.
  • User 'plays' with the instance. Able to use all the modules.
  • User notified of approaching timeout via email. Can ask for extended time.
  • The instance gets deleted on timeout.

Codes and user guides

The following changes were made to the existing code

  • A new modules demoM (demo manager has been created).
  • The demo manager contains shell scripts which creates and deletes the instances.
  • Changes were made to the pref module.
  • Tables added to the existing starter database so as to handle demo requests and admin grants.

Code The source code is available here

Guide to set up the shell script

  • Make the following changes to
      cp -R  /var/www/project/vesuvius /var/www/${sname}
  • In this line change the project/vesuvius to the directory structure where the source code is kept. Accordingly change the directory structure in all required places.
  • Change the database username and password accordingly in all the required lines.

User perspective

  • Registered user can request for a demo instance by filling up a required form. Details such as Organisation name, location, and why they are interested in a Sahana Vesuvius demo are required.
  • Registered user waits till his request is granted.
  • He is notified when the request is granted via email. Also since there is only one instance for every registered user, therefore he will get details of instance created when he clecks on 'Request for Instance' button.
  • The user can use the thus created instance and use all the modules available.
  • As the timeout period approaches the user is notified via email as well as inside the created instance.
  • As the instance expires its is automatically deleted. The user cannot access the instance anymore.

Admin perspective

  • The Sahana admin has a different interface for handling demo requests.
  • The admin gets notified of a new request and processes it.
  • The admin then fills up a form with the required details for creating an instance.
  • Admin can test whether the instance is working or not.
  • Admin can explicitly delete an instance before expiry.

Future works There is no mechanism yet for allowing the user to explicitly customise his instance. The instance should also come up with a pre filled database.Testing this framework on a public server is one major work which needs to be done as soon as possible.

Screen shots


Project blueprint

Shell script details

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