Challenge Overview
Challenge Objectives
-
Upgrade tc-preferences-service to use the latest dependencies
Project Background
tc-preferences-service implemented in NodeJS provides backend endpoints for user preferences management.
It is used by the community-app for user preferences management https://www.topcoder.com/settings/preferences , the community-app interacts with tc-preferences-service via topcoder-react-lib library.
Technology Stack
-
NodeJS
-
DynamoDB
-
MailChimp
Code Access
Existing Code: https://github.com/appirio-tech/tc-preferences-service
Branch: dev
You will find a self registration link attached on the forum in case you don’t have access to the repo.
If the self registration link does not work for you, please request access by posting your Github username on the challenge forum.
Individual requirements
The tc-preferences-service is developed using an old NodeJS version 6.9.4 and uses old deprecated dependencies.
When installing the dependencies in CircleCI, some error messages/warnings are displayed due to deprecated dependencies.
These error messages/warnings break the continuous deployment of the service.
This challenge main requirement is to upgrade the tc-preferences-service to use the latest stable NodeJS version (currently 10.15.0 LTS) and also upgrade all the dependencies to the latest stable versions.
There should be no error/warning displayed when installing dependencies and running the service.
No feature should be broken by the updates, all features should be properly verified.
Unit tests should be properly working after the versions upgrade.
Final Submission Guidelines
What to Submit
-
A git patch against the latest commit hash in the dev branch
-
A verification document with detailed instructions on how to test the changes( all the service features should still work after the upgrade, and this is required to verify in the verification document)
The winner must create a pull request against the dev branch in our repo.