Giter Site home page Giter Site logo

measure-mate's People

Contributors

dependabot-support avatar dependabot[bot] avatar julypanda avatar mvillis avatar rjohnst avatar rloomans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

measure-mate's Issues

Add license

Not sure which one at this stage.

Will figure it out and add to the repo.

When you click the launch button - create an assessment object

At the moment when you click the launch button, no data is stored about the template that was created or the tags that were selected.

As part of completing this card we have to use the data from the launch form and create an Assessment object in the database.

refactor jsx props in ratingList component to not use bind

As per linter:

client/js/components/assessment/ratingList.js
  48:48  error  JSX props should not use .bind()  react/jsx-no-bind
  50:17  error  JSX props should not use .bind()  react/jsx-no-bind
  64:48  error  JSX props should not use .bind()  react/jsx-no-bind
  71:38  error  JSX props should not use .bind()  react/jsx-no-bind

โœ– 4 problems (4 errors, 0 warnings)

There are some tips here on what we should do:
https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md

Looks like the general gist is to extract the looped code into a separate component.

demo app not working in heroku

Currently getting an application error:

An error occurred in the application and your page could not be served. Please try again in a few moments.

Previous targets

Incorporate the target ratings from the previous assessment for the team.

Ideas:

  • default the target rating to the same value as the last assessment
  • annotate the previous target rating and still require selecting the new target

Aggregate individual reviews into mega view

Would be cool for people in a given team to do an assessment on their own and then have measure mate show them an aggregation of everyone's results.

To aggregate it could be just on tags to keep it simple to start with.

For a given attribute you could show the distribution of measurements and then a summary of the comments (maybe aggregated as a word cloud?)

At this stage this view would be read only.

A future card may be added to allow teams to set an "official" value based on feedback.

more flexible commenting engine for a given assessment

Problem

At present a comment is tied to a given measurement. A measurement is typically tied to a given rating (this is not enforced in the model but when displaying a comment we have to know which tab (attribute) to display it against. This is inferred by the rating that was stored in the assessment).

In general being able to talk about a given attribute and have that conversation persisted independently of a rating being selected is reasonable. Being able to make overall comments on the assessment also seems quite reasonable. As does being able to have a more natural conversation which could include more than one piece of text.

....so too is being able to reply, like etc but this is getting a bit too crazy for the moment :-)

Proposal

  • Create a comment model
  • Link it to an assessment (mandatory)
  • have an optional link to an attribute
  • add a timestamp

Once we have a concept of a user in the system you could also add them.

This would support all three situations:

  • Comments can be made on overall assessment
  • Comments can be made for a given attribute
  • more than one comment can be made.

UX

With this proposal I think the UI of the app would also evolve. This is an opportunity to asynchronously load comments as they are visible to the user.

You would need to consider whether you want to have a separate view for overall assessment comments versus those that relate to just the given attribute. I feel that if you're not careful in this space you make cause additional confusion to the user.

You would also need to be mindful that comments can often be quite messy and you often want to create an official looking conclusion for a given assessment / attribute. Maybe an additional capability is still needed

Thoughts?

Update readme to include instructions for windows users

Things we know do not work on windows:

  • pwd
  • virtualenv activate is different

The complete this card the readme must include guidance for folks on windows.
The preference is to provide the guidance inline with the linux / windows using the table syntax:

For example:

OSX/Linux Windows
$ source .venv/bin/activate $ .venv\Scripts\activate

redirect assessment view to the real assessment object

Currently the form just redirects to a generic assessment view.

localhost:8000/assessment/

Complete this card and upon creation of the assessment the form will redirect to the actual assessment object:

localhost:8000/assessment/1/

At this stage the view just needs to be moved across. There is no need to populate data against the assessment. This will come in additional cards.

Protect templates from modification

The entire data model is currently writeable from the API endpoints.

The template config data, including attributes, and ratings, should only be changeable from the admin interface, and each assessment should only be changeable by members of the "team".

Provide visual hint of form completion on each attribute tab

When you've filled in both the current and target value for a given attribute, update the tab for that attribute to show a tick that it is complete.

This allows you to instantly see what has and hasn't been done.
It also provides a nice visual queue that you've completed a given form.

Add a assessment summary

Add a view of the assessment that just shows the current, previous and target values of the rankings (similar to the dashboard of the LAMA spreadsheet).

image

Maybe even a graph:

image

Store the rating selected against each attribute in an assessment

When a user selects a rating for an attribute in an assessment, we need to store that "click" in the database.

To complete this card we must:
(1) Create a measurement object when a user clicks a row by calling the api
(2) Update the cell so that they know it was clicked

To implement this feature we need to:

  • Using React, every time the user makes a rating selection, execute a PUT operation on the assessment resource to update the assessment object to include a new link to a rating object.

how about some javascript tests hey!?!

Yeah.....so there are currently zero tests around the javascript of the application.

Python coverage is now in the high nineties. Javascript is getting pretty jealous!

Add a team construct

Team --> The bunch of people doing an assessment together - responsible for the assessment.

Maybe this is a group of labels?

Add a target value for attributes

Along with the current ranking, record a target value for each attribute.

Work Breakdown:

  • add tests to the measurement api to support multiple ratings (as well as still support single ones)
  • update model to store multiple ratings for a given measurement
  • update model to include a rating type (ie. Current vs Target)
  • refactor existing app calls to work with the new multi-rating interface
  • update RatingList component to include a multi select. Intent is to be able to label a given rating as:
    • current
    • target
    • current / target
    • nothing
  • add validation to the form so the user know when they have finished making the right selections
  • hook the new component into the multiple-rating api to persist the selection

Nav menu doesn't work

When the viewport is below a certain size, the Nav bar changes to a dropdown menu... and it doesn't show anything when you tap/click it.

add validation for assessment creation form

at the moment if you launch an assessment without selecting a template or tags, you get no feedback (javascript quietly errors behind the scenes):

Uncaught TypeError: this.state.template.map is not a function

The system should not allow you to launch until the values have been selected.

improve usability of assessment form

Was thinking something like this:

mock up

Leverage bootstrap left tabs:
https://react-bootstrap.github.io/components.html#left-tabs

any thoughts @rloomans @mjohno ?

Work Left To Do

  • Replace scrolling view with tabs
  • Implement next/preview at the bottom of each attribute
  • Put controls around navigation to help with form validation and ensure you can't go beyond the first/last tab
  • clean up mobile view** this may be significant
  • add arrow to next button
  • visual indicator for the goodness of the rating

Add formatting for desc fields

The desc(ription) fields should allow Markdown or similar to add formatting rather than the current hack of allowing specifying a CSS class

Pre-compile react jsx for runtime environments

As per warning in the app at the moment:

You are using the in-browser JSX transformer. Be sure to precompile your JSX for production - http://facebook.github.io/react/docs/tooling-integration.html#jsx
react.js:19588 Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of AssessmentList. See https://fb.me/react-warning-keys for more information.

Not quite sure how to implement this (at least for the current pipeline). Maybe we can just run a command in heroku for now.

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.