Code Monkey home page Code Monkey logo

busy-beaver's Introduction

Busy Beaver

Busy Beaver Logo

Build Status codecov License: MIT Code Style: Black

Chicago Python's Community Engagement Slack bot.

Introduction

With over four thousand members, the Chicago Python Users Group (ChiPy) is one of the largest Python communities in the world. Slack has become the primary method of communication amongst our members in-between events. We developed an open-source Slack bot, codename: Busy Beaver, to increase community engagement.

We released Busy Beaver on January 10th at the ChiPy monthly meeting. Slides and video recording from the release announcement are available online.

Features

Upcoming Events

Busy Beaver integrates with Meetup API to provide details about upcoming events. Events are downloaded to the Busy Beaver database periodically.

Users are able to query using the /busybeaver slash command.

  • /busybeaver next shows details of the upcoming event
  • /busybeaver events shows details of upcoming events

A periodic CRON job has been set to post the contents of /busybeaver events in a designed Slack channel.

GitHub Activity

Busy Beaver posts daily summaries of public GitHub activity for registered users in the #busy-beaver channel on the ChiPy Slack. The goal of this feature is to increase engagement by sparking conversations around GitHub activity.

Users sign up for an account by DMing the bot with the phrase: connect. The bot requires users to sign into GitHub to ensure only authorized activity is posted in the channel.

Retweeter

Busy Beaver retweets posts made to the @ChicagoPython Twitter account in the #at-chicagopython channel on the ChiPy Slack.

Roadmap

We are currently working on additional features to improve ChiPy community engagement. Please join the conversation in #busy-beaver-meta on the ChiPy Slack.

Contributing

Busy Beaver is always looking for new contributors! Previous open source experience is not required! Please see CONTRIBUTING.md.

Development Notes

Busy Beaver is an open source project where all artificats (code, Docker image, etc) are online. We use the Twelve-Factor Application Methodology for building services to design the CICD process and to keep information secure.

Web Application Stack

Tests

vcr.py records cassettes of requests and responses for new tests, and replays them for previously written tests. Make sure to filter credentials

DevOps

Services

We are grateful to the following organizations for providing free services to open source projects:

API Docs

Can make requests to REST endpoints to kick off processes. Currently we are using CRON to run repetitive tasks; this is managed by Ansible to avoid manual configuration.

GitHub Summary Endpoint

  • Start the process to run a summary by making a POST request to /poll/twitter with Authentication header set to token {token} and JSON body:
{
  "channel": "busy-beaver"
}

Retweeter Endpoint

  • Check Twitter feed for new posts to share on Slack by making a POST request to /poll/github-summary with Authentication header set to token {token} and JSON body:
{
  "channel": "at-chicagopython"
}

Creating API Account and Token

admin = ApiUser(username="admin", token="abc123!")
db.session.add(admin)
db.session.commit()

busy-beaver's People

Contributors

alanbato avatar alysivji avatar chrisluedtke avatar danis-developments avatar mblayman avatar raymondberg avatar ryansmccoy avatar thejessleigh avatar thornycrackers avatar virogenesis avatar zaxr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.