Skip to content

mashuaihh/chaise

 
 

Repository files navigation

Chaise Build Status

Computer-human access interface with schema evolution!

Introduction

Chaise is a model-driven web interface (more formally a user agent) for data discovery, analysis, visualization, editing, sharing and collaboration over tabular data (more specifically relational data) served up as Web resources by the ERMrest service. Chaise dynamically renders relational data resources based on a small set of baseline assumptions, combined with its rendering heuristics, and finally user preferences in order to support common user interactions with the data. Chaise is developed in JavaScript, HTML, CSS, and runs in most modern Web browsers. It is the front-end component of the suite of tools including ERMrest, Hatrac, and IObox.

Dynamic Rendering Approach

Chaise is intended to support specific user interactions, as briefly introduced above (e.g., discovery, analysis, editing, etc.). As such, its presentation capabilities are narrowly scoped to support these interactions. Thus, Chaise makes a few assumptions about how users will interact with the underlying data.

A few representative but non-exhaustive examples of these assumptions include:

  • search, explore, and browse collections of data
  • navigate from one data record to the next by following their relationships (i.e., following links)
  • add, edit, remove data records from the database
  • create, alter, or extend the data model itself
  • subset and export data collections
  • share data with other users
  • annotate data records with tags or controlled vocabulary terms

Beyond these baseline assumptions about basic usage, Chaise makes almost no assumptions about the structure of the underlying data model, such as its tables, columns, keys, foreign key relationships, etc. Chaise begins by introspecting the data model by getting the catalog/N/schema resource from ERMrest. The schema resource includes lightweight semantic annotations about the model in addition to the underlying relational database schema. Chaise uses its rending heuristics to decide, for instance, how to flatten a hierarchical structure into a simplified (or denormalized) presentation for searching and viewing. The schema annotations are then used to modify or override its rendering heuristics, for instance, to hide a column of a table or to use a specific display name in the interface that is different than the column name from the table definition of the schema. Chaise then applies user preferences to further override the rendering decisions and annotations, for instance, to present a nested table of data in a transposed layout (i.e., with the columns and rows flipped).

See the heuristics guide for more information.

Quick Start Guide

Runtime Dependencies

Chaise depends on the following server- and client-side software.

  • Relational data resources: Chaise is intended to be deployed in an environment that includes the ERMrest service for exposing tabular (relational) data as Web resources.
  • Web server: Chaise can be hosted on any HTTP web server. Most likely you will want to deploy the app on the same host as ERMrest. If it is deployed on a separate host, you will need to enable CORS on the web server on which ERMrest is deployed.
  • Client-side JavaScript Libraries: AngularJS and other client-side JavaScript runtime dependencies are bundled in scripts/vendors in this repository.

Development Dependencies

Development dependencies include:

How to Build

Get the source and run make. See make help for information on alternative make targets.

git clone https://github.com/informatics-isi-edu/chaise.git
cd chaise
make all

Make will invoke npm install to download and install all additional dependencies under the local node_modules directory relative to the project directory. This does not require administrative (i.e., root) privileges in order to install the development dependencies.

How to Install

After building (above), copy to your host (i.e., /var/www/path/to/chaise).

How to Configure

See the configuration guide.

How to Run

Point a modern web browser at http://<hostname>/path/to/chaise/search.

How to Test

Before running the tests, you'll need a Sauce Labs account (free for open source projects). Configure your Sauce Labs credentials in a terminal:

export SAUCE_USERNAME=YOUR_USERNAME
export SAUCE_ACCESS_KEY=YOUR_ACCESS_KEY

Set a base URL for the Protractor tests (i.e. the path to your Chaise installation):

export CHAISE_BASE_URL=http://<hostname>/path/to/chaise/search

Then run make test.

About

An adaptive user interface to the ERMrest service.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 81.3%
  • CSS 13.8%
  • HTML 4.0%
  • Other 0.9%