/Xcheck

RS School React - X check

Primary LanguageJavaScript

Xcheck

The web application which help review tasks during Rolling Scopes School education process (mentor`s review or other students review). Application includes tasks, review requests, reviews, cross-check sessions. It can help to improve tasks review process.


Technology stack

  • React
  • Redux
  • Redux-saga
  • Javascript

Development tools

  • Webpack
  • EsLint
  • Babel

Additional packages

  • antd
  • redux-form
  • uuid
  • moment
  • lodash
  • react-highlight-words

Installation

git clone https://github.com/YekaterinaKarakulina/Xcheck.git
cd Xcheck
npm install (make install)

Run app with npm

npm run dev-server
json-server db.json
node auth-server/index.js 

Run app with make

make start
make db
make auth

Run tests

Before running tests installation steps need to be done.

npm run test (make test)

Coverage report will be printed in terminal. Also "coverage" folder will be created, it will contain more information about coverage.

How to deploy

  • deploy your database https://github.com/jesperorb/json-server-heroku
  • go to github.com > Settings > Developer settings > OAuth Apps > Create new OAuth App > fill fields with app info > Register application https://docs.github.com/en/developers/apps/creating-an-oauth-app
  • deploy auth server on path /auth-server-heroku/index.js on heroku as separate repository using heroku cli or connect to github repository; make sure you has procfile, that starts server file; reveal config vars in heroku dashboard > settings; add keys: CLIENT_ID, CLIENT_SECRET with values you got for clientId and clientSecret in previous step and key PORT with needed value
  • edit src/env.js file:
    const env = {
      clientId: <clientId from registered Github OAuth app>,
      dbBaseURL: <deployed database url>,
      authBaseURL: <deployed auth server url>,
      appBaseURL: <app url you will deploy>,
    };
  • deploy app on heroku using heroku cli or connect to github repository
  • reveal config vars in heroku dashboard > settings; add PORT key with needed value (3001 in our case)

Database entities

  • /users
  • /tasks
  • /crossCheckSessions
  • /reviewRequests
  • /reviews

Routes

  • /login

  • /tasks

  • /tasks/task-form

  • /tasks/task-edit-form

  • /tasks/:id

  • /cross-check-sessions

  • /cross-check-sessions/cross-check-session-form

  • /cross-check-sessions/cross-check-session-edit-form

  • /cross-check-sessions/:id

  • /review-requests

  • /review-requests/review-request-form

  • /check

  • /reviews

  • /reviews/:id

Extra features

Tasks:

  • tasks filters and sorting by title, author and status
  • task preview

Review Requests:

  • redirecting to task preview from review requests table

Reviews:

  • extra table for crossCheck sessions reviews
  • redirecting to task preview from reviews table

CrossCheck sessions:

  • redirecting to task preview from crossCheck sessions table
  • crossCheck session preview

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.