Dev Technology hosted its third annual hackathon in October. Our challenge focused on using chat bots in a real-world business application to streamline processes and provide clear accountability across the CI/CD pipeline. My solution focused on using the power of Microsoft Bot Framework and GitlLab to build a foundation that can be built upon to automate day to day tasks.
I built out the Bot’s Framework using node.js and hosted it on an AWS server. I registered the bot with Azure, so a channel could be made on Microsoft Teams. The registration process is necessary to establish a connection between your server hosting the bot, and Azure, the Microsoft platform that will map your bot to a Teams channel. I selected Node.js because it is a powerful, yet light programming language that, in my opinion, handles async operations well. The node.js application utilized various packages, but the Bot-Builder and Gitbeaker packages were the main two used in this project. Bot-Builder is the base Microsoft package used to interact with Teams. Gitbeaker is a package that widely supports GitLab and GitHub API. The GitLab API is how we interact with GitLab to do almost anything that can be done by interacting with GitLab directly via the browser.
After the Node.js bot application was ready for deployment, we spun up an AWS Ubuntu instance and I deployed the Node.js application. In order to connect with Azure, I used ngrok to create a tunnel between the AWS server and Azure. Ngrok essentially maps a URL to your specific port on the instance to easily be incorporated in Azure. Once proper passwords and credentials are created and updated, I created a Teams channel that could then be interacted with through the Teams app.
I see great potential in two areas related to Chat Bots: information and automation. For automation, we currently have various automation platforms, but a lot of the automation requires logging into a platform and triggering an automation event. I think Chat Bots are a game changer because everyone uses a Chat app such as Teams for communication, and the simplicity of typing a request into a chat bot for something simple can save a lot of time. In information, I see the potential in being able to ask a bot for a particular piece of information, kind of like a Google for an organization. For example, if a company was putting on an event, a participant could ask a chat bot common questions such as parking, times, and locations.