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.