Challenge Overview
Challenge Objectives
-
Update Topcoder Connect app to use v5 member API instead of v3
Technology Stack
-
React
-
API
Individual requirements
Recently a new version of the Member api went into production - the brand new v5 member API. In this challenge we want to make changes to the Connect app to use the new api instead of the old v3 version.
Connect app is a React SPA with a _LOT_ of features and member info is used in a lot of places, but luckily all the api calls are made in two service modules: src/api/projectMembers.js and src/api/users.js and one container component src/routes/settings/routes/email-verification/containers/SuccessContainer.jsx
These are the member api v3 endpoints used by connect:
-
GET /v3/members/_search/?fields={fields}
-
GET /v3/members/_suggest/${value}
-
GET /v3/members/${handle}
-
PUT /v3/members/${handle}/${query}
-
GET /v3/members/${handle}/traits
-
PUT /v3/members/${handle}/traits
-
POST /v3/members/${handle}/traits
-
PUT /v3/members/${handle}/photo
-
POST /v3/members/${handle}/photoUploadUrl
-
POST /v3/members/${handle}/verify?newEmail=${newEmail}&oldEmail=${oldEmail}&token=$token}
V5 API documentation is available in the project repository, including the Swagger spec and Postman collection
Your job is to first analyze the v5 API to find matching v5 endpoints and then update the connect app to use them. Endpoints mostly have exact matches in v5, but there will certainly be cases where response attributes are named differently than in v3, or where some endpoints don’t exactly match 1-1 with v3 endpoints or where the new api doesn’t require some steps (ex photoUploadUrl isn’t needed in the v5 api, or verify endpoint doesn’t require emails). Ask in the forums about such edge cases.
Connect app doesn’t use typed models, so tracking all the usages of an attribute won’t be a straightforward find/replace operation, but make sure to analyze all the dependencies and not introduce any regressions.
Make sure these features are working properly with the new api:
-
Project listing (loads a lot of member profiles)
-
Project details (dashboard - phases management)
-
Creating a new project
-
Team management (add/remove/approve/invite)
-
Messaging
-
Assets Library
-
Notifications
Success criteria is simple: all app features work as they are working now, and no calls to v3 member api reported in the browser console.
What To Submit
Submit updated code base or a git patch. Winner will be required to create a pull request in Gitlab