{"id":18011287,"url":"https://github.com/johnnyjayjay/instant-poll","last_synced_at":"2025-09-01T00:43:40.517Z","repository":{"id":43310539,"uuid":"374175802","full_name":"JohnnyJayJay/instant-poll","owner":"JohnnyJayJay","description":"A Discord bot that lets you create polls in your server","archived":false,"fork":false,"pushed_at":"2023-07-13T10:16:03.000Z","size":310,"stargazers_count":37,"open_issues_count":8,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2023-07-13T11:29:59.174Z","etag":null,"topics":["bot","clojure","discord","discord-bot","hacktoberfest","polls"],"latest_commit_sha":null,"homepage":"","language":"Clojure","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/JohnnyJayJay.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}},"created_at":"2021-06-05T17:36:13.000Z","updated_at":"2023-07-08T19:59:06.000Z","dependencies_parsed_at":"2023-01-20T01:35:41.916Z","dependency_job_id":null,"html_url":"https://github.com/JohnnyJayJay/instant-poll","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyJayJay%2Finstant-poll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyJayJay%2Finstant-poll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyJayJay%2Finstant-poll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyJayJay%2Finstant-poll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnnyJayJay","download_url":"https://codeload.github.com/JohnnyJayJay/instant-poll/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222155809,"owners_count":16940424,"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":["bot","clojure","discord","discord-bot","hacktoberfest","polls"],"created_at":"2024-10-30T03:08:53.801Z","updated_at":"2024-10-30T03:08:54.266Z","avatar_url":"https://github.com/JohnnyJayJay.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# instant-poll\n\ninstant-poll is a [Discord](https://discord.com) application that allows you to create polls with live feedback in text channels. \n\n![Fancy GIF](./poll-demo.gif)\n\n## Features\n- No setup required, just plug and play\n- Real-time updating poll results\n- Cutting-edge Discord features (slash commands, message buttons)\n- Timed Polls\n- Polls with multiple votes per user\n- Dynamic Polls (adding options as you go)\n- Open (non-anonymous) polls\n- Restricted polls (only certain roles can participate)\n- Gateway-free (you don't need to invite the bot to use it)\n\n## Add it to your server\n\n[**Add the official bot**](https://discord.com/oauth2/authorize?client_id=489108697864470531\u0026scope=applications.commands)\n\nYou will notice that, when you've authorised the app, it **will not join your server**. This is **intended**, **you can use the commands anyway**.\nYou can verify this by typing `/poll info`.\n\n## Usage\nUse `/poll create` to create a poll. \n\n| Parameter              | Description                                                                 | Constraints                               |\n|------------------------|-----------------------------------------------------------------------------|-------------------------------------------|\n| `question`             | The poll question                                                           | /                                         |\n| `1`..`15`              | The options voters can pick from                                            | Format: `\u003cemoji\u003e? \u003ckey\u003e? ; \u003cdescription\u003e` |\n| `voter-role`           | A role people must have in order to participate                             | Any existing role                         |\n| `allow-change-options` | Whether it should be possible to add more options after creation            | True or False                             |\n| `show-votes`           | Whether it will be visible who voted for which option(s)                    | always, never or after closing            |\n| `multi-vote`           | Whether every voter can pick multiple options                               | True or False                             |\n| `close-in`             | Number of seconds after which poll is closed                                | positive number, \u003c= 0 will be ignored     |\n| `default-keys`         | Whether to use option keys A-O automatically. May improve mobile formatting | True or False                             |\n\n\nPolls can be closed by the poll creator and people who are allowed to delete messages.\n\n## Hosting\nYou can host this application yourself using [Docker](https://docker.com). Further prerequisites:\n- A Discord application with a bot user (https://discord.com/developers/applications)\n- Domain with an SSL certificate\n- Reverse proxy such as nginx.\n\n### Setup\n\n#### Installation\n\nThis installation guide assumes basic familiarity with using a Linux server.\n\n1. Clone the repository and enter it\n   ```bash\n   git clone https://github.com/JohnnyJayJay/instant-poll\n   cd instant-poll\n   ```\n2. Edit `config/config.template.edn` to include the public key and token of your Discord app. You can find both of these on your [applications page](https://discord.com/developers/applications).\n3. `mv config/config.template.edn config/config.edn`\n\n\n#### Proxy Setup\nThe application will run a web server that accepts Discord requests at any URI. You should set up your reverse proxy to forward requests to your domain\n(or a specific URI, if you want) to the Docker container.\n\nThe port to forward to on your local host is chosen by Docker by default, so you'll have to set that after you started the container (see `docker ps`). \nAlternatively, you can set a fixed port by changing this: `- \"8090\"` to `-\"\u003cyour-port\u003e:8090\"` in `docker.compose.yml`, where `\u003cyour-port\u003e` is the\nport that you want your reverse proxy to forward to.\n\n#### Slash Commands Registration\n\nRun the following command to register instant-poll's commands globally for your bot:\n\n``` bash\ndocker compose run -e UPDATE_COMMANDS=1 server`\n```\n\nYou should see a confirmation in the logs.\n\n#### Updating\n\nTo update to the latest version of instant-poll, run\n\n``` bash\ngit pull\ndocker compose build \n```\n\nIf there are changes to the set of commands provided by instant-poll, you have to [re-register them](#Slash-Commands-Registration).\n\nRestarting the bot works via `docker compose down` and then [running](#Run) again.\n\n\n### Run\n\nTo start the app, run `docker compose up` or `docker compose up -d` to start in detached mode.\n\nIf it's your first run, you need to tell Discord where to send interactions now. Again, you can to that on the developer portal in your application's page. Set \"Interactions Endpoint URL\" to whereever your server accepts requests and save your changes.\n\nDepending on when you registered the slash commands, you may have to wait up to an hour before you can use the commands in your servers. Once they're available, check `/poll info` to see if it works.\n\n## License\n\nCopyright © 2021-2023 JohnnyJayJay\n\nLicensed under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnnyjayjay%2Finstant-poll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnnyjayjay%2Finstant-poll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnnyjayjay%2Finstant-poll/lists"}