Challenge Overview

Challenge Objectives

  • Remove integration with Mongodb

  • Add integration with Dynamodb

  • Provide script to migrate data from mongodb to dynamodb

 

Project Background

  • Project Vorbote is a nodejs and reactjs based app

  • The app allows any Topcoder members to subscribe to events that occur on the Topcoder platform

  • Essentially, the app allows a member to setup their own webhooks, for example, to be notified when a contest is launched

 

Technology Stack

  • Nodejs version 8

  • Reactjs

  • Dynamodb

  • Kafka

 

Code access

You can find the code here. Kindly use the develop branch for your changes.

 

Individual requirements

Remove integration with Mongodb (Major Requirement)

  • We are moving away from Mongodb and want to use Dynamodb

  • Thus, remove all code that deals with mongodb

  • Do not comment the code, remove it altogether

 

Add integration with Dynamodb (Major Requirement)

  • After removing the mongodb related code, replace them with dynamodb.

  • That is, update the database used to dynamodb while ensuring that the existing functionality does not break

  • You need to support pagination (use the lastEvaluatedKey feature). You are allowed to rename the api query param as needed to work with Dynamodb.

  • Update the User Interface to ensure that it continues to work as before.

 

Provide script to migrate data from mongodb to dynamodb (Minor Requirement)

  • Provide a nodejs based script that will allow us to migrate the current data that we have for this app in Mongodb to Dynamodb

  • The script will be executed through CLI. Provide it as a npm script.

 

Deployment guide and validation document

Update the deployment guide as needed.

 

Important Notes

  • Follow existing conventions used in the app

  • Ensure there are no lint errors in the app.

  • Tests should work. You need to fix any issues with it (Minor Requirement) and it should run successfully after the change in database.

  • Existing functionality should continue to work as before.



Final Submission Guidelines

Submit a git patch of your changes.

 

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30146350