Giter VIP home page Giter VIP logo

bamboo-coffee's Introduction

Bamboo Coffee

Bamboo Coffee is the opensource version of the tool we use at GetYourGuide to pair random people for having a virtual coffee break together during this work-from-home season.

From the list of employees, the program does run NUMBER_OF_TRIALS simulations. Each time it generates a random subsets of GROUP_SIZE employees, then calculates the diversity score for this simulation based on the criteria in OPTIMIZED_FEATURE. At the end, the simulation with the highest diversity score is chosen. Each subset of employees is sent an email invitation to get together for a coffee break.

Setup

The following prerequisites are assumed for the setup:

  • The HR system, from which employees data is pulled, is BambooHR. If yours is different, make the change in method load_df()

  • The employee data has the fields: 'displayName', 'workEmail', 'department', 'location', 'jobTitle', 'firstName'

  • Emails are sent via SMTP protocol.

Configuration

The provided config file template config_template.txt includes a list of expected configuration options.

Section GROUPING:

  • FEATURES: comma-separated (without space) list of employees data fields
  • WHITELIST_LOCATIONS: comma-separated (without space) list of office locations from which employees are invited (we use this to only include offices from a specific timezone)
  • OPT_OUT_EMPLOYEES:comma-separated (without space) email list of employees to be excluded from invitations
  • GROUP_SIZE: how many people should be in a group
  • OPTIMIZED_FEATURE: the feature for which the diversity is optimized.
    • 'department' means we optimize to have people from different departments in each group.
    • 'location' means we optimize to have people from different office locations in each group.
  • NUMBER_OF_TRIALS: how many times we want to run the simulations

Sections BAMBOO and SMTP contain configuration related to BambooHR and SMTP.

Run

Install python dependencies:

pip3 install -r requirements.txt

Provide your own configuration by copying the template config file and adjusting it to your needs:

cp config_template.txt config.txt

Make sure you have the following configured properly:

  • WHITELIST_LOCATIONS (needs to match the values from your BambooHR, otherwise no pairings are generated)
  • APIKEY in BAMBOO section (get it from your BambooHR portal)
  • SUBDOMAIN in BAMBOO section (use the part coming before .bamboohr.com)
  • SMTP section (to allow sending of emails)

Run and print the result to stdout, no emails sent:

python3 bamboo_coffee.py

Run and send only 1 invitation email to the provided recipient:

python3 bamboo_coffee.py test [email protected]

Run and send invitation emails to everyone

python3 bamboo_coffee.py send

Security

For security issues please contact [email protected].

Legal

Copyright 2021 GetYourGuide GmbH.

BambooCoffee is licensed under the Apache License, Version 2.0. See LICENSE for the full text.

bamboo-coffee's People

Contributors

alexef avatar dang-gyg avatar dependabot[bot] avatar philippsieber avatar x-way avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bamboo-coffee's Issues

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.