Giter VIP home page Giter VIP logo

react-retrospective-dashboard's Introduction

react-retrospective-dashboard

This web app is supposed to be the replacement of the existing Angular-based web app used by https://www.retrospective-dashboard.org - participant screen.

Right now it is in Beta, as long as "To be implemented" section in this Readme.md has any element.

Currently it only supports Glad / Sad / Mad board, which is the most popular one.

Usage

$ npm install
$ npm start

Then open http://localhost:3000/#/type/gsm/code/1/token/a

For production build, run the following command:

$ npm run build

This will produce artifacts under build folder

Development

For local development, use mocked service. In file app/services/ParticipantApi.js, look for method getInstance, and use ParticipantApi.instance = new ParticipantApiMock(dispatch); to instantiate the service.

This configuration is the default.

For loal development, use mocked Giphy service: app/services/GiphyService.js, set useMocks to true.

Release

  1. $ npm run build
  2. Copy content of /build folder and paste it under src/main/webapp/resources/participant-web-v2 in backend project (not open-source)

To be implemented

  • Voting
    • Full regression test by automation

    • Facebook post about the new feature

    • Unit tests on service and frontend side

    • Not required before rollout

      • Extend Participatn Api Mock to handle voting
      • Error handling: make sure we get Sentry error in case service fails to load votes when fetching session data

To be improved

  • Using import styles from './styles' to avoid style name collision
  • Create TextArea component and use in FeedbackDialog
  • Kill react-helmet
  • Kill commentText from FeedbackDialog
  • Clone with lib in ParticipantApi instead of JSON parse/serialize
  • Extract events from constants near to components

Stack and Features

Language

  • ES6 support
  • SCSS support

Stack

  • React v16.8.6 - released 28th of March 2019
  • Redux v4.0.1 - released 13rd of Oct 2018

Development and Build

  • Hot Reload
  • Webpack
  • Sourcemap
  • Jest
  • Enzyme
  • ESLint - npm run lint

User Interface

  • Bootstrap 3
  • Toastr notifications

Testing

Unit Tests

Run the following command

$ npm run test

... or just run the following command if you dont want linter to run

$ jest --coverage

It generates a coverage report as well. You can set coverage expectations in config/jest.config.js

End-to-End Tests with Protractor

Protractor is a javascript based tool for E2E testing Angular applications, but it is handy for any frontend development framework.

Before running E2E tests, make sure that the website is running locally

$ npm start

Installing dependencies

$ npm install -g protractor
$ webdriver-manager update

Launch Tests

Start Selenium from command line

$ webdriver-manager start

Switch to another command line and start frontend app

$ npm start

Switch to another command line and start E2E tests

$ cd integration-tests
$ protractor conf.js

Notes

HTML elements are being identified by automation-id attribute. Attribute automation-value is also used by some tests.

By default, automated tests are running in Chrome / headless mode. You can disable headless mode in conf.js.

react-retrospective-dashboard's People

Contributors

akos-sereg avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

react-retrospective-dashboard's Issues

Voting to use pre-defined points

Story:

  • Scum master announces voting; defines 5 points per participant
  • Participant can vote like this: 3 points to sticker A, 1 point for sticker B, 1 point for sticker C

Docker image

Is it possible to provide an official Docker image

Ignore or support emojis in feedback comment text

Backend throws the following error in case there is an emoji in the comment text. Frontend app should filter these emojis (eg. best effort to store the comment).

UncategorizedSQLException PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO note (id, username, user_id, glad, no_control, comment, session_code, session_token, transform) VALUES(default, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x90\xB1' for column 'comment' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB1' for column 'comment' at row 1

[end-user feedback] 4Ls board: voting stage: icons misunderstanding

I hosted another Lean Coffee today and this time used the Four L’s board. The attendees brought up a good point, when we move to the voting stage it isn’t clear what the icons refer to in regards to Like, Learned, etc. Would it be possible to add the icon next to the column name on the board so it is clear which goes with what?

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.