{"id":20325432,"url":"https://github.com/getyourguide/bamboo-coffee","last_synced_at":"2026-02-13T08:03:41.952Z","repository":{"id":44755873,"uuid":"369242538","full_name":"getyourguide/bamboo-coffee","owner":"getyourguide","description":"virtual coffee with pandas","archived":false,"fork":false,"pushed_at":"2024-12-30T06:55:19.000Z","size":20,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":61,"default_branch":"main","last_synced_at":"2025-01-11T06:57:16.235Z","etag":null,"topics":["bamboohr","coffee","scheduler","virtual"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getyourguide.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-20T14:48:04.000Z","updated_at":"2024-12-30T06:55:22.000Z","dependencies_parsed_at":"2024-05-07T06:29:13.639Z","dependency_job_id":"5764e0f2-bd11-437a-b512-8cb28e4317da","html_url":"https://github.com/getyourguide/bamboo-coffee","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getyourguide%2Fbamboo-coffee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getyourguide%2Fbamboo-coffee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getyourguide%2Fbamboo-coffee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getyourguide%2Fbamboo-coffee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getyourguide","download_url":"https://codeload.github.com/getyourguide/bamboo-coffee/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233906354,"owners_count":18748798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bamboohr","coffee","scheduler","virtual"],"created_at":"2024-11-14T19:39:49.163Z","updated_at":"2026-02-13T08:03:36.907Z","avatar_url":"https://github.com/getyourguide.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bamboo Coffee\n\nBamboo 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.\n\nFrom 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.\n\n# Setup\nThe following prerequisites are assumed for the setup:\n\n- The HR system, from which employees data is pulled, is BambooHR. If yours is different, make the change in method `load_df()`\n\n- The employee data has the fields: 'displayName', 'workEmail', 'department', 'location', 'jobTitle', 'firstName'\n\n- Emails are sent via SMTP protocol.\n\n# Configuration\nThe provided config file template [config_template.txt](./config_template.txt) includes a list of expected configuration options.\n\nSection `GROUPING`:\n- FEATURES: comma-separated (without space) list of employees data fields\n- 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)\n- OPT_OUT_EMPLOYEES:comma-separated (without space) email list of employees to be excluded from invitations\n- GROUP_SIZE: how many people should be in a group\n- OPTIMIZED_FEATURE: the feature for which the diversity is optimized. \n  - 'department' means we optimize to have people from different departments in each group.\n  - 'location' means we optimize to have people from different office locations in each group.\n- NUMBER_OF_TRIALS: how many times we want to run the simulations\n\nSections `BAMBOO` and `SMTP` contain configuration related to BambooHR and SMTP.\n\n# Run\nInstall python dependencies:\n```\npip3 install -r requirements.txt\n```\n\nProvide your own configuration by copying the template config file and adjusting it to your needs:\n```\ncp config_template.txt config.txt\n```\n\nMake sure you have the following configured properly:\n- `WHITELIST_LOCATIONS` (needs to match the values from your BambooHR, otherwise no pairings are generated)\n- `APIKEY` in `BAMBOO` section (get it from your BambooHR portal)\n- `SUBDOMAIN` in `BAMBOO` section (use the part coming before .bamboohr.com)\n- `SMTP` section (to allow sending of emails)\n\n\nRun and print the result to stdout, no emails sent:\n```\npython3 bamboo_coffee.py\n```\n\nRun and send only 1 invitation email to the provided recipient:\n```\npython3 bamboo_coffee.py test abc@example.com\n```\n\nRun and send invitation emails to everyone\n```\npython3 bamboo_coffee.py send\n```\n\n# Security\n\nFor security issues please contact [security@getyourguide.com](mailto:security@getyourguide.com).\n\n# Legal\n\nCopyright 2021 GetYourGuide GmbH.\n\nBambooCoffee is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for the full text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetyourguide%2Fbamboo-coffee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetyourguide%2Fbamboo-coffee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetyourguide%2Fbamboo-coffee/lists"}