{"id":19146593,"url":"https://github.com/theroughcode/teambot-slackapp","last_synced_at":"2026-06-12T09:30:18.167Z","repository":{"id":67125130,"uuid":"100210544","full_name":"theRoughCode/Teambot-SlackApp","owner":"theRoughCode","description":":robot: Team formation bot for hackathons!","archived":false,"fork":false,"pushed_at":"2018-01-10T01:14:16.000Z","size":296,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-16T22:35:57.375Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theRoughCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-13T23:23:42.000Z","updated_at":"2017-08-18T19:34:43.000Z","dependencies_parsed_at":"2023-06-09T20:30:26.263Z","dependency_job_id":null,"html_url":"https://github.com/theRoughCode/Teambot-SlackApp","commit_stats":{"total_commits":570,"total_committers":1,"mean_commits":570.0,"dds":0.0,"last_synced_commit":"945d74319429b628bad93b20e45f1523910937c1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theRoughCode%2FTeambot-SlackApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theRoughCode%2FTeambot-SlackApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theRoughCode%2FTeambot-SlackApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theRoughCode%2FTeambot-SlackApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theRoughCode","download_url":"https://codeload.github.com/theRoughCode/Teambot-SlackApp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240229974,"owners_count":19768597,"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":[],"created_at":"2024-11-09T07:47:25.804Z","updated_at":"2026-06-12T09:30:18.090Z","avatar_url":"https://github.com/theRoughCode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teambot\n\nTeambot is the revamped Slack version of [MayBot](https://github.com/theRoughCode/maybot).  Teambot is a Slack app that hackathons\ncan use within their hackathon Slack to help hackers get matched based on roles and skills.\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.\n\n### Prerequisites\n\nYou'll need Node.js and npm (a package manager for JavaScript).  You can download Node.js from [here](https://nodejs.org) which includes npm.\n\n### Installing\n\nA step by step series of examples that tell you have to get a development env running\n\n1. Download this repo locally.\n2. Install node modules.\n\n```\nnpm install\n```\n\n3. Create a Firebase project and generate your service account credentials.  \n(More info [here](https://firebase.google.com/docs/admin/setup))\n4. Download your service account credentials.\n5. Go to your [Firebase project](https://console.firebase.google.com/u/0/) -\u003e Database, copy the URL of your firebase database. (Should be of the form https://{project_id}.firebaseio.com/)\n6. Create a new Slack app [here](https://api.slack.com/apps).\n7. Create a `.env` file in the main directory of the project and include the following key-value pairs:\u003cbr /\u003e\n  i. `PORT` - define the port used for the local server\u003cbr /\u003e\n  ii. `API_TOKEN` - token used to connect to your hackathon's Slack.\n  Create a token [here](https://api.slack.com/custom-integrations/legacy-tokens)\u003cbr /\u003e\n  iii. `FIREBASE` - copy and paste the JSON within the Firebase service account credentials you downloaded in step 4.\u003cbr /\u003e\n  iv. `BOT_CHANNEL_NAME` - name of channel within your Slack.\u003cbr /\u003e\n  v. `RAPH_NAME` - Slack username of bot rep.  Any errors will be sent to this user.\u003cbr /\u003e\n  vi. `DB_NAME` - name of hackathon\u003cbr /\u003e\n  vii. `DB_URL` - Firebase database URL\n```\nPORT=8000\nAPI_TOKEN=enter_token_here\nFIREBASE={\"type\": \"service_account\", \"project_id\": \"some_id\", \"private_key_id\": \"some_key\", \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nsome_private_key\\n-----END PRIVATE KEY-----\\n\",   \"client_email\": \"some_email\", \"client_id\": \"some_client_id\", \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\", \"token_uri\": \"https://accounts.google.com/o/oauth2/token\", \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\", \"client_x509_cert_url\": \"some_url\"}\nBOT_CHANNEL_NAME=looking-for-team\nRAPH_NAME=raphael\nDB_NAME=\"Hack the North\"\n```\n\n## Deployment\n\n### Local Deployment\nFor local deployment, download [ngrok](https://ngrok.com/).\n1. In terminal, run `npm start` or `nodemon` (more info on nodemon [here](https://nodemon.io/)) from the project root directory.\n2. `./ngrok http 8000` where `8000` is the port name you defined within your `.env` file.\n3. Open `http://localhost:4040` in your browser.  This keeps track of the http requests made to your local server and the responses.\n4. Copy the webhook given to you by ngrok.\n5. In your Slack app dashboard, go to _Settings_ -\u003e _Install App_, and install the app into your Slack.\n6. Go to _Features_ -\u003e _Interactive Components_, and input `http://{webhook}.ngrok.io/interact` under _Request URL_.\n7. _Features_ -\u003e _Slash Commands_ -\u003e _Create New Command_, and enter the following:\n    1. Command: `/teambot`\n    2. Request URL: `http://{webhook}.ngrok.io/slash`\n    3. Short Description: `Manage team formation`\n    4. Usage Hint: `[start, help, list]`\n8. _Features_ -\u003e _OAuth \u0026 Permissions_ -\u003e _Scopes_, add the following scopes:\n    - commands\n    - incoming-webhook\n    - channels:read\n    - chat:write:bot\n    - chat:write:user\n    - groups:read\n    - im:history\n    - im:read\n    - im:write\n    - users.profile:read\n9. _Features_ -\u003e _Event Subscriptions_, turn *Enable Events* on.\n10. Input the _Request URL_ as `http://2c20523c.ngrok.io/events`.\n11. Subscribe to the `member_joined_channel` and `member_left_channel` events.\n12. Type `/teambot` in the bot channel to begin the conversation!\n\n### Live Deployment\n1. Host it using a web hosting service like [Heroku](heroku.com)\n2. Replace all `ngrok` endpoints in the above steps with your live web URL.\n3. Type `/teambot` in the bot channel to begin the conversation!\n\n## Built With\n\n* [JavaScript](https://www.javascript.com/) - The language of choice\n* [Node.js](https://nodejs.org) - Our server framework\n* [npm](https://www.npmjs.com/) - Package manager\n* [Slack API](https://api.slack.com/web) - API to communicate with Slack\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n\n## Authors\n\n* **Raphael Koh** - *Initial work and Project Owner* - [TheRoughCode](https://github.com/theRoughCode)\n\n\u003c!-- See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.--\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Acknowledgments\n\n* [Clayton Halim](https://github.com/clayton-halim) for collaborating with me on [Maybot](https://github.com/theRoughCode/maybot) at FraserHacks!\n* The Hack the North team for helping me test the app!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheroughcode%2Fteambot-slackapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheroughcode%2Fteambot-slackapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheroughcode%2Fteambot-slackapp/lists"}