Challenge Overview
We develop a new effective and scalable solution for management of Topcoder communities, dedicated to specific clients / projects / technologies. Think about existing Cognitive, iOS, and Predix communities. We aim to create a new ReactJS front-end for such mini-sites.
1. Challenge listing should be shown in a page served by Community App - you must create corresponding demo page in that repo.
2. You must modify the challenge listing component to provide a way to specify a master challenge filter. The specified master filter must be always applied to challenge listing in addition to any filters set by user, and page visitor must have no way to remove it. In other words, it should provide us a way to show at the page only those challenges related to a given community, while allowing visitors to further filter these related challenges. We want to be flexible with the exact type of master filter we can specify. For demo purposes, let's have a keyword base master filter, which shows at the demo page only those challenges that have a certain technology tag, which can be specified as part of demo page url (i.e. if we access the demo page as /community-challenge-listing/JavaScript, the listing should show only challenges with JavaScript tag, etc.).
1. To fork React Components repo, make any necessary modifications of the challenge listing component inside your fork, and then use your fork as dependency inside Community App. This way has some pitfalls: the React Components repo contains a bunch of legacy code (it uses Coffee Script, does not care about being isomorphic, etc.). Using it from Community App will demands some tweaks in the Community App setup.
2. To copy challenge listings component with all related staff from React Components into Community App, and make necessary modifications within Community App repo. This way is preferred, as in the long term we want to migrate all Topcoder parts to Community App repo. The pitfall here is that you'll have to clean-up challenge listing code to comply with Community App code standards.
In any case you MUST NOT introduce lint errors into our repositories, keep unit tests working and keep unit test coverage as high as possible (especially inside Community App repo). Also, your changes into challenge listing component should not prevent using of the modified component inside the main listing of Topcoder challenges (check Topcoder App repo to see how it is currently used at https://www.topcoder.com/challenges/).
Challenge Scope
The focus of this challenge is to find a way to list challenges related to a specific community, re-using the new Topcoder challenge listing component (can be seen at https://www.topcoder.com/challenges/) as much as possible. The requirements are:1. Challenge listing should be shown in a page served by Community App - you must create corresponding demo page in that repo.
2. You must modify the challenge listing component to provide a way to specify a master challenge filter. The specified master filter must be always applied to challenge listing in addition to any filters set by user, and page visitor must have no way to remove it. In other words, it should provide us a way to show at the page only those challenges related to a given community, while allowing visitors to further filter these related challenges. We want to be flexible with the exact type of master filter we can specify. For demo purposes, let's have a keyword base master filter, which shows at the demo page only those challenges that have a certain technology tag, which can be specified as part of demo page url (i.e. if we access the demo page as /community-challenge-listing/JavaScript, the listing should show only challenges with JavaScript tag, etc.).
Implementation Details
Existing challenge listing component can be found inside React Components repository. We believe you have two ways to go:1. To fork React Components repo, make any necessary modifications of the challenge listing component inside your fork, and then use your fork as dependency inside Community App. This way has some pitfalls: the React Components repo contains a bunch of legacy code (it uses Coffee Script, does not care about being isomorphic, etc.). Using it from Community App will demands some tweaks in the Community App setup.
2. To copy challenge listings component with all related staff from React Components into Community App, and make necessary modifications within Community App repo. This way is preferred, as in the long term we want to migrate all Topcoder parts to Community App repo. The pitfall here is that you'll have to clean-up challenge listing code to comply with Community App code standards.
In any case you MUST NOT introduce lint errors into our repositories, keep unit tests working and keep unit test coverage as high as possible (especially inside Community App repo). Also, your changes into challenge listing component should not prevent using of the modified component inside the main listing of Topcoder challenges (check Topcoder App repo to see how it is currently used at https://www.topcoder.com/challenges/).