System Block Diagram
Figure 1.1 CollabyBot System Block Diagram
The Collaby Bot system has 4 microservices as seen in Figure 1.1:
GitHub: GitHub API, and code repository
The GitHub API will give CollabyBot access to public code repositories so it can receive information about repository event on our end. The GitHub API will send JSON payloads to different endpoints on our DigitalOcean server depending on type of the event (Pull request, Commit or Issue).
Jira: Jira's API, team's board
The Jira API will give CollabyBot permission to access the team's sprint board and tickets. Depending on the user's requests, Jira will send JSON payloads containing information regarding the current sprint and its tickets, or it will assign/unassign a person to a ticket.
CollabyBot: Python bot, DigitalOcean server
The web server will be hosted on DigitalOcean. When the server receives a POST request with a JSON payload from the GitHub or Jira APIs, it will send data in JSON format to the Python bot.
Communication app: Web app/desktop app, channel with CollabyBot installed
Users will download CollabyBot through the application's bot directory and grant it access to the server it is installed in using OAuth. The application's API will be used to configure CollabyBot’s scope and permissions.