Skip to content

Azure Functions to keep track of the stand-up meeting presenter

License

Notifications You must be signed in to change notification settings

gpailler/CestKiKi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CestKiKi Azure functions

Azure functions workflow Coverage

Summary

You are running a daily stand-up meeting on Zoom with a rolling presenter and you always forget who was presenting the day before?

This project is for you!

image

General design

CestKiki runs serverless, on the cloud. It uses webhooks to receive notifications about Zoom screen sharings and stores needed infos into an Azure Table. Once a day, it queries the Table to find who was sharing his screen during the stand-up and send a Slack notification.

sequenceDiagram
  participant A as Zoom<br><br>WebHook app
  participant B as Azure Function<br><br>ZoomWebHookFunction
  participant C as Azure<br><br>Tables
  participant D as Azure Function<br><br>NotificationFunction
  participant E as Slack<br><br>Incoming Webhook
  rect rgb(191, 223, 255)
    note right of A: Continuously
    A->>B: Send sharing_started event
    B->>C: Add sharing info entity<br>(user, start time...)
    A->>B: Send sharing_ended event
    B->>C: Update sharing info entity<br>(end time...)
  end
  rect rgb(191, 223, 255)
    note right of C: Once a day
    D->>C: Query sharing entities<br>and find who was sharing<br>his screen during the stand-up
    D->>E: Send notification
  end

Configuration

Azure

  • Create a new Azure Function App (a new Storage account should be automatically created)

Zoom

  • Create a Webhook only app on the Zoom Marketplace
  • Use the generated Secret Token for the Azure Function configuration below
  • Use the https://[AZURE_FUNCTION_NAME].azurewebsites.net/api/ZoomWebHook URL for the Event notification endpoint
  • Enable Event Subscriptions for the following events:
    • Participant/Host left meeting
    • Meeting Sharing Started
    • Meeting Sharing Ended

Slack

  • Create a new App in your workspace
  • Activate the Incoming Webhooks, create a new Webhook for your channel and use the generated URL for the Azure Function configuration below

Azure

  • Edit the Function App Configuration and add the following settings:
    • Notification:StandUpTimeZone = Europe/Paris (Zone ID from https://nodatime.org/TimeZones)
    • Notification:StandUpStartTime = 10:15:00
    • Notification:StandUpEndTime = 10:30:00
    • Notification:NotificationTime = 10:30:00
    • NotificationCron = 0 30 * * * * (The Azure function should run at the same time as the NotificationTime)
    • Notification:WebHook = https://hooks.slack.com/services/[...] (Slack Incoming Webhook configured above)
    • Zoom:MonitoredRoom = 123456789 (Zoom room id where the stand-up occurs)
    • Zoom:WebHookSecret = [...] (Secret Token from Zoom generated above)
  • Edit Networking -> Inbound Traffic -> Access restriction and add the Zoom IP ranges
  • Deploy CestKiKi app on Azure

Compilation and Deployment

CestKiKi requires the following components:

The solution can be loaded and published as-is to the Azure Function App. A fair amount of unit tests are written as debugging Azure Function live could be tedious.

About

Azure Functions to keep track of the stand-up meeting presenter

Topics

Resources

License

Stars

Watchers

Forks

Languages