Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Objectives

  • Enhance the Reactjs and Nodejs based application to fix some bugs and provide additional features

 

Project Background

  • We have an app that listens to events that are generated by Topcoder (events such as contest created, new thread created in forum etc) and allows Topcoder members to create resthooks for specific topics

  • All events in Topcoder will now be passed to a Kafka endpoint from where Topcoder admins, copilots and members alike will be able to subscribe to these events.

  • This is an ongoing project which is being enhanced periodically.

 

Technology Stack

  • We are using Reactjs on the front end, generated using the create react app

  • We are using Nodejs version 8 on the backend.

  • We use MongoDB as our database

  • We are also interfacing with Kafka which is the source of the messages for our app

 

Code Access

  • The code is located here. Kindly make sure that you are using the develop branch as your base code. The repository should be publicly accessible.

 

Individual Requirements

Role Creation Screen (Major Requirement)

  • Create a new screen for members with “Admin” role

  • In this screen, have a simple form that allows admin users to describe which topics members with roles other than admin users can subscribe to. The admin user will specify the role and the multiple topics against that role. Kindly give instructions on how to specify multiple roles if you are using a single input element for input of the topics against the role.

Update Resthook creation form (Major Requirement)

  • Improve the Create Resthook form. Here, make the Topic input field an auto suggest dropdown (or just a select dropdown input instead). The values in this field will be the values that the admin user has entered for users belonging to that role.

  • Make sure to have server side validations to ensure that members don’t have access to topics that the admin user has not set for them. This also means that when the user creates the RestHook, test if the topic in the RestHook is allowed for user with that role.

Kafka Subscription Bug (Minor Requirement)

  • As of now, if a new topic is created in Kafka, the app needs to be restarted for subscribers to be able to receive messages. While the app does detect new messages in kafka (based on the logs), it appears that it does not automatically subscribe to it. Kindly fix this bug. The fix should be such that a simple page refresh allows the user to view the latest topics

View RestHooks bug (Minor Requirement)

  • At the moment, any logged in user can see resthooks, even those of other users. Filter this (at the server side itself) so that users can only manage (CRUD) resthooks that they have created.

 

Deployment Guide and Validation Document

  • There are no updates expected to README file for this contest. We don’t expect the deployment steps to change. No verification steps needed either. Optionally, provide a video on how to use the topics-for-role management screen.

 

Important Notes

  • Authorization (jwt token based) is already present in the app and you can retrieve the role of the user in the front end itself. You might want to update the server to be able to get information on the jwt token.

  • Note that the authorization related service has a README of its own. Please refer to it in and the module it mentions and kindly do not rewrite your own code but instead copy over the code in the module if needed.

  • We do not want you to use any state management system for this app, i.e. kindly don’t use redux or mobx or anything similar. No state management is to be introduced.

  • You are allowed to use React Router v4 for this app



Final Submission Guidelines

  • You can upload a git patch or upload the entire code base.

  • Please ensure that you used the develop branch as the base branch when starting.

  • You are not required to submit any pull request. Kindly ensure that you do not accidentally do this.

  • Verify that the front end can be built and there are no errors here before you submit

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30067845