Challenge Overview
Recently, we have ported challenge submission page(s) to the Community App (we would like to think about it as a single page, but now it is quite different for design and development challenges). Unfortunately, the only competitor who has submitted and won that challenge, implemented all submission logic with Topcoder API v2. This works for development challenges; but does not work for desing ones, as the current production version of the design submission page uses Filestack service under the hood (related source code is in Topcoder App). That's it, the scope of this challenge is to correctly implement design submissions with Filestack (development submissions will keep using Topcoder API v2 for now). On the way you will note that all submission page code violates our Coding Standards, in particular related components use local states all around, instead of Redux, and are implemented as classes rather than simple functions. It is expected that you will properly refactor the code directly related to the scope of this challenge.
Also, note, that now most of data for challenge-related pages are stored under state.challenge path of Redux store. Moving on we want to follow a better approach: please keep under state.challenge only data related to the challenge per se (i.e. mostly the data about the challenged fetched from TC APIs, and meta fields that helps to control the loading of these data; in other words, the data that are potentially re-usable by any page that handles some operations with a single challenge). For any data related to the specific page (i.e. mostly UI state of a specific page, that is of no importance for different page) please start a new segment in Redux state, state.page.challenge.submission, i.e. the plan is to keep this segment mimicing the actual page hierarchy inside the app, and to keep here all page-scope data.
Here you'll find design specifications for submission page; please rise a question in the challenge forum, if you find out that these specs contradicts the actual production version of design submission page, and it does not look as an intended improvement. Any other questions / doubts are also welcomed in the forum.
Also, note, that now most of data for challenge-related pages are stored under state.challenge path of Redux store. Moving on we want to follow a better approach: please keep under state.challenge only data related to the challenge per se (i.e. mostly the data about the challenged fetched from TC APIs, and meta fields that helps to control the loading of these data; in other words, the data that are potentially re-usable by any page that handles some operations with a single challenge). For any data related to the specific page (i.e. mostly UI state of a specific page, that is of no importance for different page) please start a new segment in Redux state, state.page.challenge.submission, i.e. the plan is to keep this segment mimicing the actual page hierarchy inside the app, and to keep here all page-scope data.
Here you'll find design specifications for submission page; please rise a question in the challenge forum, if you find out that these specs contradicts the actual production version of design submission page, and it does not look as an intended improvement. Any other questions / doubts are also welcomed in the forum.