{"id":23520115,"url":"https://github.com/ventx/slack-pollapp","last_synced_at":"2026-02-16T14:06:43.589Z","repository":{"id":184229751,"uuid":"670445397","full_name":"ventx/slack-pollapp","owner":"ventx","description":"A basic Slack polling app","archived":false,"fork":false,"pushed_at":"2023-07-27T07:08:00.000Z","size":19,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-16T23:14:22.026Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","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/ventx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2023-07-25T04:32:45.000Z","updated_at":"2023-07-27T13:13:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"cc054e35-57ff-456f-9747-9768e0cd5251","html_url":"https://github.com/ventx/slack-pollapp","commit_stats":null,"previous_names":["ventx/slack-pollapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ventx/slack-pollapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fslack-pollapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fslack-pollapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fslack-pollapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fslack-pollapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ventx","download_url":"https://codeload.github.com/ventx/slack-pollapp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ventx%2Fslack-pollapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275672926,"owners_count":25507467,"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","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12-25T16:12:03.651Z","updated_at":"2025-09-17T21:55:00.616Z","avatar_url":"https://github.com/ventx.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pollapp\n\nA basic serverless Slack polling app with \n* [Slack Bolt for Python](https://slack.dev/bolt-python),\n* [API Gateway](https://aws.amazon.com/api-gateway/),\n* [DynamoDB](https://aws.amazon.com/dynamodb/), \n* [Lambda](https://aws.amazon.com/lambda/) and \n* [Terraform](https://www.terraform.io/).\n\n## Prerequisites\nMake sure that you have\n* a [Slack workspace](https://slack.com/create) set up\n* access to an [AWS](https://aws.amazon.com/free) account\n* already provisioned a hosted zone with [Route53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) in the above account\n* installed and configured \n    * [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)\n    * [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)\n    * [Docker](https://docs.docker.com/engine/install/) \n\n## Provision AWS Resources\nWe use Terraform to create our infrastructure\n* update `terraform.tfvars`\n    * `aws_region` with our desired AWS target region\n    * `aws_profile` with the AWS profile we're using\n    * `zone_name` with the name of an already existing hosted zone, where the app's record and certificate validation records will be created and\n* run both `terraform init` and `terraform apply`.\n\nYou may have to wait for the DNS record to propagate for a little while, use _nslookup_ by running the output of the `terraform output -raw check_url_command` command.\n\n## Installing the Slack App to your Workspace\nInstall the app to a Slack workspace using an [app manifest](https://api.slack.com/reference/manifests) file:\n* go to https://api.slack.com/apps\n* click on _Create New App_\n* click on _From an app manifest_ \n* select your desired workspace and click on _Next_\n* run `terraform output -raw app_manifest` in the project's root folder and copy the output\n* select _YAML_, paste above's app manifest and click on _Next_\n* click on _Create_\n* navigate to _Settings \u003e Basic Information_, click on _Install to Workspace_ in the _Install your app_ section and confirm by clicking on _Allow_ in the following dialog\n\nNext put the app's _Signing Secret_ and _Bot User OAuth Token_ into the secret so that the Lambda function can authenticate with Slack:\n* go to https://api.slack.com/apps\n* click on _Your Apps_ and select our app\n* navigate to _Settings \u003e Basic Information_ and copy the _Signing Secret_'s value\n* navigate to _Features \u003e OAuth \u0026 Permissions_ and copy the _Bot User OAuth Token_'s value\n* run `terraform output -raw set_slack_secret_command`, copy the output command, replace `\u003cSLACK_BOT_TOKEN\u003e` and `\u003cSLACK_SIGNING_SECRET\u003e` with above's _Signing Secret_ and _Bot User OAuth Token_ so that the result looks like this\n```\naws secretsmanager put-secret-value \\\n    --secret-id pollapp_slack_secrets \\\n    --secret-string \"{\\\"SLACK_BOT_TOKEN\\\":\\\"\u003cSLACK_BOT_TOKEN\u003e\\\",\\\"SLACK_SIGNING_SECRET\\\":\\\"\u003cSLACK_SIGNING_SECRET\u003e\\\"}\\\" \\\n    --region us-east-1 \\\n    --profile default\n```\n* run the above command\n* navigate to _Features \u003e App Manifest_ where you may find an info box stating that the _URL isn't verified_ and click _Click here to verify_\n\nFinally test that everything is working by initiating a poll with something like `/poll \"My polling app works\" \"Yes\" \"No\"` in your Slack workspace.\n\n\n## Cleanup\nTo delete your Slack app\n* go to https://api.slack.com/apps\n* click on _Your Apps_ and select our app\n* navigate to _Settings \u003e Basic Information_ and click on _Delete App_\n\nTo delete all AWS resources\n* run `terraform destroy`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fventx%2Fslack-pollapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fventx%2Fslack-pollapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fventx%2Fslack-pollapp/lists"}