SimpleVote — An open-source, live updating, voting platform.
SimpleVote is an open-source, self-hostable, live-updating voting/polling platform, for both live meetings, or extended polls.
Polls can be dynamic, meaning users can(if allowed) contribute options and questions themselves.
It uses range voting (also known as olympic score voting) for all your poll options. Range voting is more expressive than simple
- Polls can have multiple questions.
- Anyone can edit, delete, or create additional questions, and options (if allowed by the creator), at anytime.
- Live chat on the sidebar.
- Questions can have expiration times, and thresholds (Making sure options with too few votes don't win).
- Easily shareable poll links.
- Image and markdown support for all questions and candidates.
- Questions can hide voter names (anonymous voting).
- Questions can be either Range, or Pointing Poker style.
- Java Spark, Bootstrap v4, Angular4, Angular-cli, ng2-bootstrap, ActiveJDBC, Liquibase, Postgres, Markdown-it, angular2-toaster
Check out a sample poll here.
If you want to self-host or help develop simplevote.
Start the docker instance
git clone https://github.com/dessalines/simple-vote cd simple-vote // edit ARG ENDPOINT_NAME=http://localhost:4567 in ./Dockerfile to your hostname docker-compose up
Goto to http://localhost:4567
- Java 8 + Maven
- Node + npm/yarn, nvm is the preferred installation method.
npm i -g @angular/cli@latest
- Postgres 9.3 or higher
git clone https://github.com/dessalines/simple-vote
Setup a postgres database
Here are some instructions to get your DB up and running.
psql -c "create user simplevote with password 'asdf' superuser" psql -c 'create database simplevote with owner simplevote;'
Open your pom.xml
cd simplevote vim service/pom.xml
Edit it to point to your own database:
<!--The Database location and login, here's a sample--> <jdbc.url>jdbc:postgresql://127.0.0.1/simplevote</jdbc.url> <jdbc.username>simplevote</jdbc.username> <jdbc.password>asdf</jdbc.password
For local testing:
./install_dev.sh and goto
For a production environment, edit
ui/src/environments/environment.prod.ts to point to your hostname, then run:
You can redirect ports in linux to route from port 80 to this port:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 4567
Bugs and feature requests
- Set up travis-ci