Skip to content
Permalink
Browse files

Update README file (#38)

  • Loading branch information...
aosolis committed May 6, 2019
1 parent 2e748ee commit ac43c95ddecbf91b6affbe36a33c15c97670f3aa
Showing with 40 additions and 62 deletions.
  1. +40 −62 README.md
102 README.md
@@ -1,62 +1,40 @@
# Icebreaker
Icebreaker is an open-source bot for Microsoft Teams that helps the whole team get closer by pairing members up every week at random, to meet for coffee, burgers, pizza, or a walk around the block.

![Meetuply pair up notification](MeetuplyPairupNotification.png)

The source for the bot is available under [MIT license](LICENSE) and demonstrates how to accomplish the following common scenarios in your bot:

* How to keep track of which teams your bot has been added to?
* How to retrieve the list of members in a team?
* How to send a message from your bot to a user in a one-on-one chat?
* How to monitor a team for new member additions and welcome each new member personally?
* How to send [Adaptive Cards](https://docs.microsoft.com/en-us/adaptive-cards/getting-started/bots) from your bot?
* How to retrieve information about a team?

# Setting up ⚙

## Setting up the bot
* Fork this repo.
* Open Icebreaker.sln file in Visual Studio.
* Open Web.config file and update it as follows:
* Use your web-browser to register [a new bot for Teams](https://dev.botframework.com/bots/new).
* Replace `ADD_BOT_APP_ID_HERE` with the Application ID you received while registering your bot.
* Copy the Application Secret, and replace `ADD_BOT_APP_SECRET_HERE` in Web.config with this value.
* Use the following PowerShell command to create a new Guid: `[guid]::NewGuid()`.
* Copy this Guid value and paste it into your Web.config for `CHOOSE_A_KEY_HERE`.

## Setting up CosmosDB used by the bot to track which teams it has been added to, and which users have opted out
* Go to [Azure Portal](https://portal.azure.com) and register a new Azure Cosmos DB database.
* Choose "Core (SQL)" for API.
* Create a database with name `MeetupBotConfig`
* Create the following collections:
* `TeamsInstalled` with partition-key as teamId.
* `UsersOptInStatus` with partition-key as tenantId.
* Copy the Cosmos DB endpoint URL and paste it into Web.config to replace `ADD_COSMOS_DB_ENDPOINT_URL_HERE`.
* Copy the Cosmos DB key value and paste it into Web.config to replace `ADD_COSMOS_DB_KEY_HERE`.

## Publish your bot to Azure
Publish your bot to Azure from Visual Studio and paste the URL of the newly created service in the `Messaging endpoint` field in the [Bot Framework Portal](https://dev.botframework.com) configuration for yout bot. Just suffix it with /api/messages.

## Setup the Scheduler job to periodically pair up people
* Set it up to run every Monday at 10am and make a HTTP GET against `https://<your_bot>.azurewebsites.net/api/processnow/<key>`.
* Replace `<key>` with the Guid you created above and pasted for `CHOOSE_A_KEY_HERE`.

## Update the manifest and sideload!
* Download the [Teams app manifest file for Meetuply](manifest/Meetuply.zip) from this repo.
* Unzip and open manifest.json file. Replace `ADD_BOT_APP_ID_HERE` with the Application ID you received during setting up your bot.
* Select all files in the current folder of the manifest (there're 3 of them in there), and Compress again.

# Questions ❓ / Issues 🙋‍♂️ / Feedback 🗨
Post [here](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/issues).

# Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details visit [https://cla.microsoft.com](https://cla.microsoft.com).

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional question or comments.

# Deploy to Azure
<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FOfficeDev%2Fmicrosoft-teams-icebreaker-app%2Fmaster%2Fportal.azuredeploy.json" target="_blank">
<img src="http://azuredeploy.net/deploybutton.png"/>
</a>
# Icebreaker App Template

| [Documentation](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/wiki) | [Deployment guide](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/wiki/Deployment-guide) | [Architecture](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/wiki/Solution-overview) |
| ---- | ---- | ---- |

Many good things in life come about through happenstance. Icebreaker enables happenstance for your team. Icebreaker is a Teams bot that helps the whole team get closer by pairing up members every week at random to meet for coffee, burgers, pizza, or a walk around the block. The bot does the heavy lifting of finding a new person to meet with each week, and aids in scheduling the meetup.

Icebreaker works really well for cultivating small, interest-based communities within your organization. For example, an organization may leverage this bot for a DevOps interest group to help facilitate organic cross-pollination of ideas and best practices. Another common use case is new employees’ cohorts to help employees learn more about each other and assimilate better in the new environment.

![Icebreaker in action](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/wiki/images/IcebreakerScheduling.gif)

## Legal notice

Please read the license terms applicable to this [here](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/blob/master/LICENSE). In addition to these terms, you agree to the following. You are responsible for complying with all privacy and security regulations, as well as all internal privacy and security policies of your company. You must also include your own privacy statement and terms of use for the app if you choose to deploy or share it broadly. Finally, please note that this application includes functionality to opt-in/opt-out of participation. Usage of this functionality is entirely your choice. Use and management of any personal data collected is your responsibility. Microsoft will not have any access to this data through this app.

## Get started

Begin with the [Solution overview](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/wiki/Solution-overview) to read about what the app does and how it works.

When you're ready to try out Icebreaker, or to use it in your own organization, follow the steps in the [Deployment guide](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/wiki/Deployment-guide).

## Feedback

Thoughts? Questions? Ideas? Share them with us on [Teams UserVoice](https://microsoftteams.uservoice.com/forums/555103-public)!

Please report bugs and other code issues [here](https://github.com/OfficeDev/microsoft-teams-icebreaker-app/issues/new).

## Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

0 comments on commit ac43c95

Please sign in to comment.
You can’t perform that action at this time.