Skip to content

zorn/flick

Repository files navigation

Flick

Still frame from the movie Election, the character Tracy Flick is holding up a cupcake with the lettering "Pick Flick" across the icing.

Flick is a simple Elixir / Phoenix LiveView app that helps capture ranked votes. You can see this project in action at https://rankedvote.app/.

This project was built to help the Elixir Book Club pick books, but it is open to all.

Highlights

  • No accounts are needed to create ballots or cast votes.
  • Votes are ranked votes that help find a better overall consensus.
  • Individual voters can be weighted.
  • A ballot can be closed, stopping future votes from being cast.

Notable Future Enhancements

  • The project is very trusting and has no aggressive security against people voting more than once. Flick is intended for honest polling.
  • The ballot creation form asks users to enter comma-delimited options, and I'd like to revert this to dynamic inputs to allow more user-friendly entry of long option names.
  • See Issues for more.

Project Demo

YouTube: https://www.youtube.com/watch?v=pxE6AbaQuUM

Screenshots

Home page

Create Ballot page

Capture Vote page

Ballot Admin page

Running in Local Development

Install Elixir via asdf

This project is built using Elixir and Erlang, and as such we define specific version targets using .tool-versions a file format of the asdf project. Please refer to it for various installation options. Once installed, run the following from the project root to make sure you have the required versions.

$ asdf install

Start Postgres

This project requires a Postgres database for storage and a Docker Compose file to run a containerized version is provided via compose.yml. You are not required to run Postgres via a container, and a standard on metal installation should work fine too.

Before attempting to run the Phoenix app, be sure to start the Docker container with:

$ docker compose up -d

To shutdown you can run:

$ docker compose down -d

Start Phoenix

To start your Phoenix server:

  • Run mix setup to install and setup dependencies
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Learn more

About

Flick is a simple Elixir / Phoenix LiveView app that helps capture ranked votes.

Topics

Resources

License

Stars

Watchers

Forks