Skip to content

saltlab/clematis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clematis

Clematis allows developers to easily understand the complex dynamic event-driven behaviour of their web application. It automatically captures traces of JavaScript code execution and generates an interactive visualization at three different levels of granularity, representing episodes of triggered causal and temporal events, related JavaScript code executions, and their impact on the DOM.

For more technical documentation see the wiki.

Paper

The technique behind Clematis is published as a research paper at ICSE 2014. It is titled "Understanding JavaScript Event-based Interactions" and is available as a PDF.

Using Clematis

Currrently, the Clematis project is designed to run from within the Eclipse IDE. Additionally, both Mozilla Firefox and Apache Maven will be needed to successfully run this project. Support for Google Chrome is planned for future iterations of Clematis.

Installation

In terms of installation, setting up the project is easier than ever. Simply checkout the project from GitHub and import it into Eclipse as an existing Maven project (File > Import... > Maven > Existing Maven Projects). In order to do this you will need the m2e plugin for Eclipse. This provides Maven integration for Eclipse and simplifies the handling of project dependencies. Please note that it may take a few minutes to compile Clematis after the first import.

Configuration

Clematis has been tested with the photo gallery application Phormer. This example application contains some basic synchronous and asynchronous JavaScript events. To use Clematis with the Phormer gallery application, download Phormer and deploy it locally using a personal webserver such as MAMP. The URL to Phormer will then need to be passed into Clematis as an argument, for example:

--url http://localhost:8888/phormer331/index.php

To better utilize Clematis with Phormer, please add a few photos to the application before running our tool.

Clematis was also tested with a sample online survey application: http://ece.ubc.ca/~saba/clematis/study_application.zip

In order to test your own web-application using Clematis, deploy the application and provide its URL to Clematis in a similar fashion as shown above.

Running the Tool

The Jetty server must be started before running Clematis. First, navigate to the root directory of Clematis (where you checked-out clematis) and execute the following from your command-line (Terminal, etc.):

mvn jetty:run

If successful, a notification should appear confirming that the server is up-and-running
([INFO] Started Jetty Server). Next, run the Clematis project as a Java application from Eclipse by setting com.clematis.core.SimpleExample as the Main class and providing a URL argument. Once a new browser session is started by Clematis, feel free to use your application as you normally would. The injected toolbar can be used to start and stop the recording of an application's behaviour (events and JavaScript execution). Any generated trace files can be found in the 'clematis-output' directory at the root of clematis.

Lastly, the outputted visualization can be viewed at the following address while the Jetty server is running:

http://localhost:8080/fish-eye-zoom/view.html

Contributing

Your feedback is valued! Please use the Issue tracker for reporting bugs or feature requests.

About

Understanding JavaScript event-based interactions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published