Challenge Overview
Project Context
- Topcoder-X is a node web application used by copilots to manage direct tasks.
- This challenge will improve support for the new Topcoder Auth flow as well as fix up some bugs
This challenge is part of a long-term series that will tweak the existing functionality based on feedback from copilots, fix bugs, and will implement new functionality.
Technology Stack
- NodeJS is used as the main language for Topcoder-X.
- DynamoDB is used for data storage, and Kafka is used for message queueing.
Challenge Context
This challenge will clean up our move to the new Auth0 login flow, and fix up some existing bugs.Challenge Details
Individual requirements
These tickets comprise the requirements for this challenge:- https://github.com/topcoder-platform/topcoder-x-ui/issues/348
- https://github.com/topcoder-platform/topcoder-x-ui/issues/347
- https://github.com/topcoder-platform/topcoder-x-ui/issues/346
- https://github.com/topcoder-platform/topcoder-x-ui/issues/343
- https://github.com/topcoder-platform/topcoder-x-ui/issues/342
- https://github.com/topcoder-platform/topcoder-x-ui/issues/326
Code access
There are currently three pieces to this app:- Topcoder-X Receiver (https://github.com/topcoder-platform/topcoder-x-receiver)
- Topcoder-X Processor (https://github.com/topcoder-platform/topcoder-x-processor)
- Topcoder-X UI (https://github.com/topcoder-platform/topcoder-x-ui)
Clarifications:
The receiver handles incoming messages on activity from both Gitlab and Github. These messages are passed as part of webhook callbacks that are supported on each platform. The receiver parses these messages from the Gitlab or Github specific format, creating new, consolidated messages that get pushed into Kafka and then "processed" by the processor.The UI is going to be used by copilots and others to set up the necessary settings for individual projects in Topcoder-X, including all the repo and Topcoder project information. It will also be used by copilots to have a centralized view of all their projects at once.
You can find detailed information on deployment and configuration here. You can use DynamoDB locally if you want: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
https://github.com/topcoder-platform/topcoder-x-ui/blob/develop/TopcoderXDeploy.md
A general user guide can be found here:
https://github.com/topcoder-platform/topcoder-x-ui/wiki
NOTE - DO NOT include any changes to README or config files that include any keys or secrets. THIS IS A MAJOR REQUIREMENT. A patch was inadvertantly applied last time that included a key and secret in the config file, which caused problems because the Topcoder-X repos are public.
Technology Stack
Topcoder-X runs in production on AWS, using DynamoDB and KafkaScorecard Aid:
Judging Criteria
- Major requirements are that we addressed each individual ticket above
- Minor requirements is that documentation and validation is appropriately updated
Deployment guide and validation document
You must provide a README.md that covers:- Local deployment
- Heroku deployment
- Configuration for the receiver, processor, and UI
- How to validate the individual fixes. Please ensure that you address each individual bug ticket directly. This needs to be comprehensive - a one-sentence description likely won't be enough. Please provide screenshots as well.
What to submit
- A patch file that targets the “develop” branch of https://github.com/topcoder-platform/topcoder-x-processor
- A patch file that targets the “develop” branch of https://github.com/topcoder-platform/topcoder-x-ui
- Ensure your patch file updates the deployment documentation in the README, if necessary
- A Validation.md that covers the details above