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
- Refactor the code to remove from views the business logic and move to services. Create serializers to send JSON response
- 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