0.0.1 • Published 5 years ago

@rifflearning/metrics v0.0.1

Weekly downloads
2
License
UNLICENSED
Repository
github
Last release
5 years ago

Riff Learning metrics

Riff metrics (visualizations and tables) and presentation dashboard

React components

  • Dashboard - Allows selection of a meeting and presents the general info and charts of the metrics for that meeting (currently all of the metrics components that are exported)
  • TurnChart
  • InfluenceChart
  • TimelineChart
  • MeetingInfo - Presents general information about a particular riff meeting. ie room name, date/time of the meeting, length of the meeting, attendees
  • ChartCard
  • A11y.ChartTable - A table that is intended to be hidden that should contain a representation of a visual chart that is a more screen reader friendly presentation.

How to use this package

npm install @rifflearning/metrics
import {
    Dashboard,
    MeetingInfo,
    InfluenceChart,
    TimelineChart,
    TurnChart,
} from '@rifflearning/metrics';

You will need to connect the redux state props, example to come later.

How to publish this package

< Still to be figured out >

Notes about extraction from riff-rtc

  • I'm removing Helmet, so that functionality will need to be added back in riff-rtc
  • redux store connection should remain in riff-rtc

Open questions

What to do about utils? I've currently copied them from riff-rtc but that will be a maintenance nightmare.

The redux/actions/dashboard functionality MUST be moved here, but I'm postponing dealing with that for now. I suspect the thing to do is to move it into the riffdata-client in some way, probably by designing and implementing a decent class for that.

@material-ui/icons required peer dependencies of

  • @material-ui/core@^4.1.2
  • react-dom@^16.8.0

I'm making them peerDependencies and devDependencies (at least for now)

First Pull Request (initial package functionality)

Description

The riff dashboard, metrics and a couple of other related components (e.g. A11y.ChartTable, ChartCard) have been moved from riff-rtc to this repo. The intention is for this repo to be published as an npm package that can be listed as a dependency of riff-rtc and the functionality imported there.

At this point only the react components have been made available in this package.

The point of merging this into develop (and master) at this point is to allow the actual package to be created, and verified to work as intended.

Once process to create the this initial 0.0.1 package as the public @rifflearning/metrics rifflearning organization owned package is determined. There is still much to be done.

Here are the remaining tasks that I can think of:

  • extract the functionality for manipulating the riffdata to produce the metrics to this repo
    • do we want to structure it for a redux store w/ reducers, action creators, selectors?
    • how do we access the riffdata server? (ie who does the authentication and sets up the feathers app?)
  • figure out how to deal w/ the utility functionality (does it belong in its own repo/package? or as a git submodule?)
  • do we consider ChartCard a utility component (if we create a utility package should it be moved there?
  • should bulma be a peer dependency? The components do use the bulma functionality, so probably.
  • create a testing infrastructure
  • see about setting up CI to run lint/style checks and unit tests
  • make it a private package not a public package (that costs $$$ so that is a last step, and the question will be if we try to use the new beta github package functionality or go with paying for private npm packages $7/month/user).
    • how do developers get access to the private packages?
    • how does the build/deploy process get access to the private packages in a secure fashion?

Motivation and context

Once the dashboard functionality is available as a package, it can be maintained in this one location and used by riffplatform (riff-rtc) and riffedu (mattermost-webapp).

In addition, currently the algorithms for the metrics are in the public riff-rtc and mattermost-webapp repos, Riff Learning considers those proprietary and therefore they should be moved to a private repository.