Challenge Overview
Challenge Objectives
-
As part of this challenge, you need to update the leaderboard for MM (Marathon Match) challenges.
Project Background
We are in the process of migrating many of the legacy pages of our platform to the new Community App repo based on a newer technology stack and improve the overall user experience.
In this series of challenges, we are targeting to the public profile page and the profile settings page based on our new design (attached on the challenge forum, available on registration).
Technology Stack
-
Node.js
-
JavaScript
-
React.js
Code Access
The work is to be done in the Community App repo (develop-from-master-23may branch) and the new topcoder-react-lib (develop branch).
You will find attached to the challenge forum a zip file containing a mini app which has the code that loads and renders a leaderboard for MM/DS challenges. That’s provided just for reference.
Individual requirements
For MM (Marathon Match) challenges, you need to update the leaderboard on the challenge details page (submissions tab) to fetch the information from the V5 Submission API.
The provided mini-app does that and you can use it as a reference.
You need to fetch and return all scores, sort the leaderboard properly and return the data so the frontend can render it.
The provided mini-app was created in a rush just to fill the gaps during an outage thus it doesn’t follow the best practices etc.
All non-MM challenges should use the existing functionality.
This requirement only applies to MM challenges.
Important: The provided mini-app expects a review type ID passed in the query parameters. An MM challenges will have at most 2 scorers (with different review type IDs). One of them will be the AV-Scan and the other one is the actual scorer.
The AV-Scan scorer review type ID must be configurable and you need to filter it out and only consider the other available scorer.
Show a loading indicator while the data for the leaderboard is loading.
Important Notes
-
You should follow the best practices established in the repository:
-
We use this stand-alone library: https://github.com/topcoder-platform/topcoder-react-lib for any actions/reducers/services of current ReactJS based app.
-
As part of this challenge submission, you also might need to improve https://github.com/topcoder-platform/topcoder-react-lib for any actions/reducers/services updates
-
Properly use Redux. Properly split code into reusable, self-contained React components, conveniently grouped inside folder structure;
-
Do not violate ESLint rules for JS code, nor StyleLint rules for SCSS;
-
Properly use babel-plugin-react-css-modules and / or react-css-themr for styling;
-
Use SCSS variables and mixins from the global stylesheets (/src/styles/_tc-styles.scss). Especially, when it relates to colors, fonts, etc;
-
Do not break existing unit tests.
-
Etc.;
Should you have any doubts, do not hesitate to ask for clarification in the challenge forum!
Submission deliverables
- Submit a git patch for each repo.
- Make sure to mention the exact commits so we can apply your patch file.
- The winner must create a PR against our repos.