Register
Submit a solution
The challenge is finished.

Challenge Overview

Technology stack

Project background

We built several bots over AWS Lambdas for communication from/to Topcoder Slack, Client Slack, and Client MS Teams. The current architecture is as below.

The tech stacks are

The source code of Lambdas are

Follow the README of each Lambda for understanding detailed steps of deployment and interaction between bots, slacks and Teams.

General requirements

1. Document sequence diagrams

There is a lot of too-fro interaction happening among Lambdas, SNS, Slacks and MS Teams, we want you to write a document in markdown format to describe the workflow. You need to create a sequence diagram in UML for each command. It should cover all the lambda functions. The following commands/lambda functions are in scope:

Central TC Lambda

  • Commands: N/A

  • Lambda functions

    • accept.js

    • decline.js

    • events.js

    • interactive.js

    • invite.js

    • request.js

    • receiver/events.js

    • receiver/interactive.js

Slack Lambda

  • Commands:

    • @topbot request <description> : Request a project with description

    • @topbot *email* <email_id> : Invite a user with email_id to the approved project

  • Lambda functions

    • approve.js

    • auth.js

    • email.js

    • events.js

    • interactive.js

    • request.js

    • response.js

    • signin.js

    • receiver/events.js

    • receiver/interactive.js

Teams Lambda

  • Commands:

    • @topbot request <project_description>: Create a project with project_description

    • @topbot email <email_id>: Invite users with email_id to an approved Connect project

  • Lambda functions

    • accept.js

    • approve.js

    • decline.js

    • email.js

    • events.js

    • request.js

    • response.js

    • receiver/events.js

 

2. Document a component diagram for the entire system

We also want you to document a component diagram in UML to show the relationship among different components, such as DynamoDB, SNS, Lambda functions etc.

You need to create a single UML component diagram for all the three lambdas, because all the three lambdas constitute a single system, and DynamoDB is also shared among the three lambdas.


Note

You can generate sequence diagrams using the Topcoder UML tool or any other UML modeling tool you might want to use. Please share the source files of your UML diagrams so that we can edit them afterwards. An image is fine for the sequence diagram/component diagram.

 

The review will be performed by the copilot and the PM subjectively, no appeal and appeal response available.



Final Submission Guidelines

  • A markdown document to describe the workflow with sequence diagrams and the component diagram.

  • The source files of the sequence diagrams and the component diagram.

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30115768