Challenge Overview
Topcoder-X is a new framework we are building to allow for easy, transparent integration with Gitlab and Github for managing tasks on Topcoder through Gitlab and Github issues. Each issue on Gitlab or Github will be automatically associated with a specific challenge on Topcoder and this challenge will be updated automatically for assignee, prize, etc... and it will be opened and closed for payment as the Gitlab or Github ticket is opened, modified, and closed.
We have a separate system called Ragnar that is used by PMs and copilots to allow users to self-assign themselves to Github and Gitlab projects. This challenge will merge these 3 projects into a single project, and clean up a few things along the way.
* Topcoder-X UI
* Topcoder-X Backend
* Ragnar
Overview
There are currently three pieces to this app:
* Topcoder-X Receiver
* Topcoder-X Processor
* Topcoder-X UI
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.
The UI will be expanded in this challenge to include the functionality that currently exists in Ragnar.
Requirements:
These Gitlab tickets describes the requirements for this challenge.
* https://gitlab.com/luettich/topcoder-x-ui/issues/15
* https://gitlab.com/luettich/topcoder-x-ui/issues/16
* https://gitlab.com/luettich/topcoder-x-ui/issues/20
* https://gitlab.com/luettich/topcoder-x-ui/issues/21
* https://gitlab.com/luettich/topcoder-x-ui/issues/19
* https://gitlab.com/luettich/topcoder-x-ui/issues/18
* https://gitlab.com/luettich/topcoder-x-ui/issues/23
Configuration document
Submitters must provide a clear "configuration.md" file that covers all the current configuration options for the combined TC-X UI, Ragnar, Backend project. Configuration options will be removed from each, and merged together, so we need a document that clearly covers what's used after the merge.
Naming and spelling
We've had issues recently with things being poorly named, like "challenges" instead of "projects" in the MongoDB for TC-X projects. Reviewers should take special care to ensure that naming is:
* Consistent
* Makes sense for the objects being defined
If competitors have any question on proper naming, they should ask in the forum.
Heroku
The newly combined Topcoder-X-UI project MUST be easily deployable to Heroku. You must cover this in your deployment guide and ensure that all Heroku configuration can be done via "heroku config:set".
Validation
Please ensure you have proper validation information that includes the buttons to set the webhooks and the full OAuth capture of credentials for Ragnar for both Gitlab and Github.
Submission requirements:
* Patch files against this repo, targeting the develop branch:
* https://gitlab.com/luettich/topcoder-x-ui
Note - no changes are expected to topcoder-x-backend or lagertha / ragnar. The updated topcoder-x-ui project will replace them.
* Updated README.md files that cover local
* Clear validation documentation
* Configuration document