Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 3.01 KB

readme.md

File metadata and controls

52 lines (35 loc) · 3.01 KB

Slack Bot to Manage Code Tenderloin Classes

Features

Open Source Governance

  • Licensed under the MIT license
  • Has a Code of Conduct for contributors

Setup

  • configurable for deployment via .env as a single bot to run in a single slack workspace
  • loads data for a single class from each folder in the data directory
  • has personas for teachers, assistants, and students who may be a part of multiple classes
  • the data model for classes and participants is stored in the ./data/{class name}/facilitators and ./data/{class name}/students folders as csv and json files
  • an auditor flag may be added to any persona assigned to a user so that they have the capabilities of that persona but are not automatically assigned to breakout rooms by the make breakout rooms command

Commands

  • emails {class} displays a list of email addresses for a class suitable for copy/pasting into a bcc field
  • audit cohort displays all users and their personas
  • audit {email address} displays which files provided that email address with the associated personas
  • invite cohort sychronizes the list of participants in Slack, inviting new participants and assigning participants to the appropriate slack channels for each class
  • make breakout rooms {class} looks up the user list of the current Zoom session for a class, then, based on the configured list of participants, create a Zopom breakout room for each assistant and randomly send students to each assistant's breakout room

Scheduled Events

  • Agile morning standup to have each student answer the questions: "What did you work on yesterday?" "What are you working on today?" and "What are you having trouble with?" These responses can be printed with the command list attendance {class} {date}.

Development

All contributors to this project are expected to adhere to our Code of Conduct.

This bot is powered by Botkit and a folder full of modules in the ./src/features/ folder.

Installation

Follow the Slack bot setup guide and copy the configuration data into a copy of .env.example named .env.

Running a Local Development Server

  1. run ngrok http 3000 in one window.
  2. note the domain that ngrok gives you
  3. correct the redirectUri=https://SOMETHING.ngrok.io/install/auth in .env to the new ngrok domain.
  4. correct the Slack app configuration with the new ngrok domain in Interactivity & Shortcuts: Request URL, OAuth & Permissions: Redirect URLs, and Event Subscriptions: Request URL
  5. run npm start in another window.

Known Bugs

  • Bot installation and authorization must be run twice?

Testing

  • npm run dev runs Jest in watch mode executing tests on changed files.
  • npm test will run the full Jest test suite and provide a code coverage report.