Challenge Overview

Project Context

This challenge is a part of the project aimed to add AI capabilities to Topcoder.
 

Challenge Context

Within the project context mentioned above, we want to update the member skill extractor API.

 

Technology Stack

  • Python
  • DynamoDB
  • Docker
 

Individual Requirement

  • Updates the member skills extractor API:
    • Refactor the code to remove from views the business logic and move to services. Create serializers to send JSON response
      • View must hold only authentication/authorization code
      • Move custom exceptions to a exception class
      • Update folder structure to have folders: services, serializers, exceptions
    • Refactor the code for best practices - remove duplicated code, reduce line width, etc <= reviewers will look at code quality here
    • For POST "get_processed_member_profile" and POST "get_member_profile":
      • Change to GET and add pagination as described by the V5 standards (check forum)
      • Remove the default value "all" and treat the missing member handle as searchig for all members
      • Remove the parsing of the raw data ("parse_raw_data")
      • Add skill parameter as a search parameter - will return members that have those skills only
    • For GET enpoint "get_challenge_skills":
      • Update response. See new structure in the forum.
      • It must be a GET and have pagination as described by the V5 standards (check forum).
      • Remove the parsing of the raw data ("parse_raw_data")
      • Add skill parameter as a search parameter - will return challenges that have those skills only
    • For POST "update_member_profile" - protect using token as done by all Topcoder v5 APIs
  • API need to publish events using the event bus API. Use https://www.npmjs.com/package/@topcoder-platform/topcoder-bus-api-wrapper as example to make the following update:
    • In tc-bus-api-wrapper-python/bus_api.py make the library use the PROXY url correctly
  • Update the routing to also respond to the following base URL "v5/member-tag-profile"
  • Minor requirements:
    • Update postman
    • Create a swagger file and make available in the web - https://django-rest-swagger.readthedocs.io/en/latest/
  • Code must run inside docker container
  • Member skill extractor API code can be found in the forum


Final Submission Guidelines

  • Updated code and documentation

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30157571