Key Information

Register
Submit
The challenge is finished.

Challenge Overview

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

Challenge Objectives

Create new user, project and challenge 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 platform setup source code 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 code from previous challenge provided in forum and follow the instructions to setup the platform.
2) API Service:
  • Create new Node.js API Service using Quorum and add below API Endpoints.
  • 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 from swagger file and tested as part of this challenge.
  • Users:
    • List all users
    • Creates an user
  • Project:
    • Create a project
    • List all projects
    • Update a project
    • Get a single project
  • Challenge:
    • Create a challenge
    • List all challenges
    • Update a challenge
    • Get a single challenge
a. User Creation:
  • Create new account for user.
  • Store user email and role on Blockchain.
  • Each role can access specific node only.
b. Project Creation:
  • Only client/manager can create project (Use "Modifier" of the solidity).
  • Budget of the Project can be accessed by only Member's of Client and Manager nodes (Use Private Contract).
  • Manager can activate the Project and assigne the copilot.
  • Once activated, project can be accessed by assigned copilot only except budget details (Use Public Contract).
  • The "createdBy" and "updatedBy" fileds must be included in Project objects.
c. Challenge Creation:
  • Only copilot can create the Challenge (Use "Modifier" of the solidity).
  • Challenges can be accessed by everyone (READ ONLY).
  • The "createdBy" and "updatedBy" fileds must be included in Challenge objects.
  • Include "Date Ranges" for each phase like Registration, Submission, Review, Appeal & Appeals Response while creating challenge and using chaincode control the phases.
  • Include "Prize" for winners, reviewers and copilot while creating the challenge.
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

SHARE:

ID: 30070711