Challenge Overview
Context
Project Context
We have been proud of the reception of our Talent as a Service platform from our community and clients. Now we are always looking to iterate our platforms and expand the reach of our audience. If you have not heard about Topcoder Taas, please check here https://www.topcoder.com/community/taas
Challenge Context
In this challenge, we would create a PoC of one tool for generating member profiles. The users of this PoC would input the Topcoder handles and their email address, and the profiles would be emailed to the address.
Expected Outcome
One web server for Taas project to generate downloadable slides in Microsoft Powerpoint slides, and to be emailed.
Challenge Details
Technology Stack
- NodeJs 12
- HTML
- Google Slides API
Individual Requirements
-
Create one HTML with one form:
-
We will input one or more topcoder handles.
-
We will input my email address.
-
We will input my topcoder handle.
-
Click the button to send a request to the server.
-
This page does not need to be super fancy, but should be easy to use.
-
-
Create web server
-
Hosts the HTML
-
Accepts form request, create one slide and send email with their url to the email address
-
-
Configurations needed in server side
-
Folder in Google Slides, default to TaaS
-
Google API credentials
-
SMTP
-
Email title and content
-
-
Every time generate one slide, named TaaS-{datetime}, for example TaaS-20200419-0800
-
Please organise code structure well so that we could update the pages later easily.
-
Please put all images in the static folder in the project root.
-
Log each step in stdout.
-
To fetch member data, please use member-api. There are different endpoints useful for this challenge https://api.topcoder.com/v3/members/jiangliwu/stats/history https://api.topcoder.com/v3/members/jiangliwu/stats etc please find them in member profile page, for example https://www.topcoder.com/members/jiangliwu/details/?track=DEVELOP&subTrack=CODE If there is any data missing, please ask in the forum.
-
TCO history could not be fetched from member-api. One excel file could be found in the forum. Please have them in one configuration file and load it in the code. We only need to support TCO19 and TCO18 in this challenge.
-
In this challenge, we only focus on the Developer role and Code track.
Important Notes
-
Use async await pattern.
-
Use config to manage all configuration.
-
Use standard as your linter. Ensure there are no lint errors in your submission.
-
Typescript is not allowed. No build or compilation of code is expected.
-
No tests are needed.
Slide specific functionality Requirements
-
For the Topcoder ranking graphic in each profile:
-
-
If a user is in the top 5% of Topcoders, then the Top 5% should be red
-
If a user is in the top 5-25%, the number should be orange
-
If a user is in the top 25-50%, the number should be blue
-
If a user is in the top 50-75%, the number should be green
-
If a user is in the top 75-100%, the number should be in grey
-
The arrow should update to the position on the bell curve, from top 100-1%, based on the user’s ranking
-
-
For the list of Top Skills:
-
-
The top 9 verified skills, ranked by amount of wins tagged to each skill, ranked by amount of wins with each skill, should be displayed, 3 best skills layed vertically in the first column, 4th-6th best skills laid vertically in the 2nd column, and the 7th-9th best skills laid vertically in the 3rd column
-
Following which, all skills should be laid out in Other Skills, the order of which is by the amount of Topcoder wins for each skill
-
-
For the Featured Work projects:
-
-
Each project should include the name of the Project of the last 7 projects that the user finished in 1st place in Topcoder and the Review Score is above 95%
-
If there are less than 7 first place finishes for the user, then go to the most recent 2nd places. If there aren’t 7 1st or 2nd place finishes, go to the most recent 3rd places, in addition to all of the 1st and 2nd place finishes. Any finish should be shown only if Review Score is >95%.
-