Big Red Bot is an internal tool used by AppDev to boost member productivity and handle various logistical tasks/reminders.
- Node.js v24.13.1 (or compatible version)
- npm (comes with Node.js)
- MongoDB instance (local or remote)
- Slack workspace with bot permissions
- Google Service Account (for Google Sheets integration)
-
Clone the repository:
git clone https://github.com/cuappdev/big-red-bot.git cd big-red-bot -
Install dependencies:
npm install
-
Create a
.envfile in the root directory by copying the.env.templateand populating the values. -
Add your Google Service Account credentials:
- Place your
service_account.jsonfile in the root directory - Ensure this file contains your Google API credentials
- Place your
npm run devThis runs the application with hot-reloading using nodemon.
npm startAutomatically tracks form completion status via Google Sheets and sends daily Slack reminders to members who haven't completed forms that are due.
- Integrates with Google Sheets to track form completion
- Creates dedicated Slack channels for each form reminder
- Sends automated daily reminders for forms due today
Biweekly coffee chat pairings to help team members get to know each other better.
-
In any Slack channel where you want to enable coffee chats, run:
/register-coffee-chats -
The bot will automatically pair members every 2 weeks and send DMs with pairing information.
/register-coffee-chats- Enable biweekly coffee chat pairings for the current channel/trigger-coffee-chats- Manually trigger coffee chat pairings (useful for testing)/disable-coffee-chats- Disable coffee chat pairings for the current channel/coffee-chat-status- Check your opt-in/opt-out status for coffee chats/reset-coffee-chats- Reset all coffee chat data and start from a fresh slate
- Members are randomly paired every 2 weeks
- The algorithm avoids pairing people who were recently matched (within the last 4 weeks)
- Each pairing receives a random activity suggestion (e.g., "grab coffee at a local café", "play a board game", "visit a museum")
- If there's an odd number of members, one group will have 3 people
- All participants receive a DM with their pairing information and activity suggestion
- Pairings are tracked in MongoDB to prevent frequent repeats