Architecture - microsoft/microsoft-teams-brainy-bot GitHub Wiki

Architecture

architecture.png

Main Components

Brainy Bot

The bot is hosted on Azure App Service. It is built using TypeScript and the Bot Framework SDK v4. Task Owners and Task Executors communicate to Brainy using a 1:1 channel. Task Managers communicate to Brainy using the respective manager team.

Configuration Application

The configuration app is an Angular application used to configure the manager team and all user roles. To access the application, the user's user principal name (UPN) within an Azure Active Directory tenant is checked against a whitelist.

SQL Database

The SQL database is predominantly used to store and retrieve data related to the task allocation process. A full history of tasks, actions, assignments and feedback is stored in this database. Such relational data can easily be used to achieve data visualization utilizing PowerBI or to create a companion app. The database also retains user role information and task metadata, which is used in Brainy's rigid permission system.