Skip to content

webjocke/pollwell

Repository files navigation

Contributors Forks Stargazers Issues Unlicense License LinkedIn


Logo

PollWell

An simple open source poll website hosted on Cloudflares Workers and Cloudflare Durable Objects.

View Demo

About the Project

[Animated gif of somebody using the website]

This project was created for an event at my work, LearningWell, where we needed a way to ask the audience questions and gather feedback. Since we only have this type of event twice a year, subscribing to an existing solution seemed wasteful. After three late nights, PollWell was born. It is super simple and includes only the features we needed.

  • Hosted on the free tier of Cloudflare Workers platform.
  • Can be hosted on your Cloudflare account with your own domain name or use my publicly hosted version.
  • Easy and straightforward.
  • Great for live streams, company events, or any situation where you want to ask the audience something or collect feedback.
  • Scales very well, capable of handling an unlimited number of poll "events" simultaneously (limited by Cloudflare's datacenters capacity).

(back to top)

Built With

  • Javascript
  • Cloudflare Workers
  • Cloudflare Durable Objects
  • HTML
  • CSS
  • Typescript

(back to top)

Getting Started

You can use our publicly hosted service at pollwell.se. Simply choose a unique name and navigate to pollwell.se/<uniquename> to create your own poll.

Alternatively, to get a local copy up and running, follow these simple steps:

Prerequisites

This is an list of things you need to run this code.

  • An Cloudflare account (Workers free plan is ok)
  • node
  • npm

Installation

  1. Login to Cloudflare Workers
    npx wrangler login
  2. Clone the repo
    git clone https://github.com/webjocke/pollwell.git
  3. Install NPM packages
    npm install
  4. Rename wrangler.example.jsonc to wrangler.jsonc
    mv wrangler.example.jsonc wrangler.jsonc
  5. Start the development server
    npx wrangler dev
  6. Deploy the project
    npx wrangler deploy

Usage

To use the application, navigate to localhost:8787 in your browser.

  • localhost:8787/<some id>: For people in the audience to connect to the event associated with that ID. This ID can later have any number of polls. The audience can go to the next poll by clicking the link at the bottom or by reloading the page.
  • localhost:8787/<some id>?admin: Admin page to configure and add different polls. The admin can select which poll should be active and modify the polls.
  • localhost:8787/<some id>?result: View the result of the currently active poll. This page updates automatically every 5 seconds to show new data.

(back to top)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Top contributors:

contrib.rocks image

(back to top)

License

Distributed under the Unlicense License. See LICENSE.txt for more information.

(back to top)

Contact

Joakim Johansson - @webjocke

https://joakimjohansson.se

(back to top)

Acknowledgments

(back to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors