Challenge Overview

Welcome to TopCoder - POC Quorum Challenge Review Process with Blockchain - Challenge Review challenge. This is one of the Blockchain challenge of a series of challenges to build this POC Quorum application.

Challenge Objectives

Create challenge scorecard, reviews, appeals and appeals response for TopCoder - POC Quorum Challenge Review Process, which will be used for showcasing the Blockchain capabilities in TopCoder platform.

Project Background

  • TopCoder is trying to determine if Blockchain can be used to control the review process of challenges.
  • To build the Blockchain network Quorum v2.0.2 will be used.
  • To store the submission files IPFS (Inter-Planetary File System) will be used.
  • The idea is to have the Quorum as distributed ledger & smart contract platform for all business logic and the challenge data related to review process (review, appeal, appeals response and manager response) will be stored into the Blockchain ledger.
  • This is one of the Blockchain challenge of a series of challenges to build this POC Quorum application.

Technology Stack

  • Quorum v2.0.2
  • IPFS (Inter-Planetary File System)
  • Node.js
  • Solidity
  • Docker

Challenge Requirements

The new review process flow using Blockchain, swagger file, sample json files and source codes from previous challenges can be found in forum. Please register to get access on attached files and ask questions in forum for any clarifications on requirements.

In this challenge we want to:
1) Platform Setup:
  • Use the source codes from previous challenges provided in the forum.
  • Please merge both source codes (challenge creation & challenge submission) and follow the instructions to setup the platform for this challenge.
2) API Service:
  • Use Node.js API Service which is using Quorum and add new endpoints to this.
  • The swagger file provided in forum with required endpoints. Both REST API models and Blockchain models have been provided. Blockchain models are the ones starting with Chaincode prefix.
  • We need the project and challenges information should be stored in json format, please refer sample project json file provided in forum.
3) JWT Authentication:
  • Use secret mysecret to generate the tokens for different roles (make it configurable). Please refere sample JWT payload json file provided in forum.
4) API Endpoints:
  • We need following endpoints to be implemented and tested as part of this challenge.
  • Challenge:
    • Register a reviewer to the challenge
    • Un-register a reviewer from the challenge
  • Challenge Review:
    • Create a challenge scorecard
    • Create a challenge review
    • Create a challenge appeal
    • Update a challenge review (appeals response)
a. Challenge:
  • Only manager & copilot can register or un-register reviewers for the challenge (Use "Modifier" of the solidity).
b. Challenge Scorecard:
  • Only manager & copilot can create challenge scorecard.
c. Challenge Review:
  • Reviewer can submit reviews, which must be accessed only by same reviewer, copilot and manager (User Private Contract / "Modifier" of the solidity).
  • Once the review phase is completed, the review must be accessed by sumission owner (User "Modifier" of the solidity).
  • Only submission owner can submit appeals on reviews, which must be accessed only by same reviewer, copilot and manager (User Private Contract / "Modifier" of the solidity).
  • Once the appeals phase is completed, the same reviewer can update the reviews with appeals response.
  • The appeals response must be accessed only by same reviewer, submission owner, copilot and manager (User Private Contract / "Modifier" of the solidity).
5) Note:
  • All IDs can be either positive Long values or UUID strings. They must be unique in the whole system.

Deployment Guide and Validation Document

You need to provide a deployment guide (README.md) and a validation document (Validation.md).
The README.md file should cover:
  • All steps necessary to configure the application
The Validation.md file should cover:
  • All tests to verify the application
 


Final Submission Guidelines

  • Zip file with submission files
  • Detailed documentation for configuring and deploying

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30072704