Tasks
- Create a web server for backend communication
- Set up a Linux server machine on DigitalOcean
- Acquire a domain name (collabybot.com)
- Configure DNS on Cloudflare to connect Linux Server to the domain
- Create callback URL for Jira
- Create callback URL for GitHub
- Implement authorization process between CollabyBot and GitHub account using GitHub’s OAuth API.
- Create GitHub OAuth app
- Create extra GitHub
- Set up the server to request users to log into their GitHub account
- Redirect users back to collabybot.com to exchange access tokens
- Set up the server to store the received access token to make requests to API on behalf of the user.
- Implement authorization process between CollabyBot and Jira account using Jira’s OAuth 2.0
- Create Jira OAuth app
- Initialize resource owners and have them log into their Atlassian account by directing them to the authorization URL
- Define OAuth Scope to Jira management tool
- Redirect users back to collabybot.com and cache (or store) credentials for the remainder of the session.
- Create an event logging process for notifications using MongoDB
- Create an event listener in Python to watch Jira and Github event streams throughout session
- Configure the bot to handle events in messaging apps (Slack, Discord, etc.)
- Set up Events API
- Create event handlers in python
- Set up the server to receive JSON payloads and parse them
- Set up the server to send a confirmation response within 3 seconds after receiving JSON payloads
- Implement a queue to handle inbound events after they are received
- Develop an interactive personal task list tool
- Create Request URL on the server domain for the /todo slash command
- Create /todo slash command in the Slack app’s dashboard
- Add logic to parse app_mention event’s payload for text ‘todo new’
- Develop an interactive tool for viewing and scheduling team events/meetings
- Create actions block with Block Kit API with such interactive elements: buttons and DateTime pickers
- Handle block_actions payload received through request url after user submits his/her choice
- Configure the server to handle POST requests from GitHub and Jira to receive notifications
- Create GitHub listening URL on the server domain
- Register the URL with the GitHub app
- Create Jira listening URL on the server domain
- Register the URL with the Jira administrative console
- Implement custom bot’s slash commands
- Create callback URL for the slash commands
- Handle slash command events so the bot can respond to them
- Implement a way for users to configure which GitHub notifications they want to receive
- Create an interactive checklist of GitHub event types with Block Kit
- Configure bot to send JSON payload request to GitHub OAuth with necessary changes received from the user
- Add logic to parse app_mention event’s payload for text ‘github events’
- Make bot to handle success and failed cases
- Success: create a message with changed settings and send it to the user upon success
- Failed: handle errors and provide the user with potential errors