Challenge Overview
Challenge Objectives
-
Integrate the challenge listing filters with the V5 Challenge API
Technology Stack
-
Node.js
-
JavaScript
-
React.js
Code Access
The work is to be done in the following repos:
Community App
Repo: https://github.com/topcoder-platform/community-app
Branch: feature-challenge-v5
Topcoder React Library
Repo: https://github.com/topcoder-platform/topcoder-react-lib
Branch: feature-challenge-v5
Challenge V5 API
Repo: https://github.com/topcoder-platform/challenge-api
Branch: develop
Resources V5 API
Repo: https://github.com/topcoder-platform/resources-api
Branch: develop
Individual requirements
In the previous challenge, we started the migration of the challenge listings as well as the challenge details page with the V5 Challenge API.
As part of this challenge, you need to integrate the filters on the challenge listings page with the V5 Challenge API.
All filtering/pagination/sorting must be done on the server-side.
You can refer to the Swagger definition of the Challenge API V5 repo for information on how to perform filtering on the server-side.
Only the following page is in the scope of this challenge:
-
The challenge listings page (/challenges)
For local development, you will have to deploy the backend services on your local machine and create some test challenges by either calling the API directly or by using the https://github.com/topcoder-platform/challenge-engine-ui project.
Update all related services/actions/reducers.
Update all related documentation (if needed).
If you’re not sure about the mapping between different properties from the v4 and the v5, please post on the forum.
In case there are changes needed on the backend, please post on the forum and the copilot will coordinate on how to handle each case.
Anything that’s not clear must be clarified on the forum.
Important Notes
-
Do not modify the response of the API to make it match with the response of the current API. The frontend (community-app) should be modified to consume the response from the v5 instead.
-
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.