Code Monkey home page Code Monkey logo

chaise's Introduction

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.

chaise's People

Contributors

svoinea avatar crisaless avatar robes avatar bennettl avatar mikedarcy avatar karlcz avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.