Challenge Overview
Please note this challenge has a shorter timeline: 72 hours for submission, 24 hours for review.
Technology stack
-
NodeJS
Project background
Topbot-MS is a Topcoder bot which allows communication between different channels of MS-teams and single targeted slack channel.
General requirements
We need to integrate the Connect into the existing MS Team bot. The current code base is https://github.com/topcoder-platform/MS-Teams-bot-processor/tree/dev
Prerequisites (You can check the deployment guide for setting up these Slack channel and MS Team channels):
-
There will be some target slack channels
-
There could be any number of MS team channel in different team workspaces where this bot could be installed
The current scenario is
(1) Topbot-MS will be used by MS teams (different organizations) to send a small project description message. In the MS teams, Issue a command @topbot request I need to build an email reminder service. “I need to build an email reminder service” is the description of the command, it can be any text.
(2) This would send the message to the preconfigured/target slack channel (in the Topcoder team) where the message would be shown along with a button “Post a response".
(3) Clicking that button will open a dialog with a text area for the user to post a response (ex “Sure, let me add you to our Slack channel to discuss the project further”, the response message is arbitrary).
(6) Submitting the response will send the response to the originating MS - Teams channel as a regular message (both request and response should be visible in the originating channel).
This is where the interaction ends currently, for more details, see the verification doc.
In this challenge, we want you to update the steps as follows:
Update (6) as follows
(6) Submitting the response will send the response to the originating MS - Teams channel as a message with two buttons accept and decline.
New steps
(7) If the user selects the accept button the response will be sent to the Slack channel that its accepted and the projects API is called to create a Connect project with the description given in the step (3) with request command.
(8) Once the project is created we share the message to MS teams that "your project has been created kindly provide you email id to invite you to project" with a post id button
(9) Clicking on the post response button will open dialog to enter email ID. Once it’s submitted, the email ID will appear in TC slack.
(10) After the successful invitation, send a message you are invited to Connect project with a webtab to MS teams to quickly access connect. Below it’s a sample screenshot of the webtab.
You need to work on the dev Connect. The address is https://connect.topcoder-dev.com, you can use your own Topcoder credentials to log in.
To create a project in Connect, you can call the API POST https://api.topcoder-dev.com/v4/projects/
To invite a member to the Connect project, you can call the API POST https://api.topcoder-dev.com/v4/projects/<project-id>/members/invite/
You can check the swagger doc to get details of the Connect API.
You can use your own Topcoder token for the Connect API. Please keep all the service endpoint and required vars in the .env file.
Final Submission Guidelines
-
A git patch against the latest commit hash of https://github.com/topcoder-platform/MS-Teams-bot-processor/tree/dev, please mention the concrete commit hash that your patch is against.
-
Update the existing deployment guide, make sure its properly described step by step, it should include the screenshots.
-
Update the existing verification guide - how to set up the environment, install the bots, verify the features, it should include the screenshots.
-
Short demo video - only the user interaction flow, no need to record build/setup steps