node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »



Tools to support the collection of and analysis of user reasons, as per


There's a database API, and several React widgets that work with that database.

The database is built on Firebase, and in order to use it you’ll need to have users authenticate into the db, using code like this:

let FIREBASE = new Firebase('')
FIREBASE.authWithOAuthPopup('google').then(YOUR CODE HERE)

The database lets you add reasons, list them, and find completions for a partially typed reason string.

import Reasons from ‘reasons’
let newReasonId = Reasons.add(‘response’, ‘bored’)

There are widgets for picking reasons, and collecting reasons and outcomes from users about a chain of activities.

And activity looks like the following:

let exampleActivity = {
  blame: '',
  elapsed: 30*60*1000,
  over: [*60*60*1000,],
  recognizer: 'indirect',
  favIconUrl: '',
  verbPhrase: ‘browsing links’,
  examples: ‘A, B, and C’,

An assessment consist of the reported reasons and outcomes for an activity:

let assessment = {
      author: userID,
      assessment: feeling,
      reasons: [],
      blame: activity.blame,
      elapsed: activity.elapsed,
      over: activity.over,
      recognizer: activity.recognizer,
      verbPhrase: activity.verbPhrase

Getting started

npm install