2017-01-24 21:48:36 +01:00
Example Voting App
2016-06-16 00:25:28 +02:00
=========
2015-11-15 20:59:29 +01:00
2016-06-16 00:25:28 +02:00
Getting started
---------------
2015-11-15 20:59:29 +01:00
2017-01-24 21:47:35 +01:00
Download [Docker ](https://www.docker.com/products/overview ). If you are on Mac or Windows, [Docker Compose ](https://docs.docker.com/compose ) will be automatically installed. On Linux, make sure you have the latest version of [Compose ](https://docs.docker.com/compose/install/ ).
2016-06-16 00:25:28 +02:00
Run in this directory:
2017-01-24 21:47:35 +01:00
```
docker-compose up
```
2016-06-16 00:25:28 +02:00
The app will be running at [http://localhost:5000 ](http://localhost:5000 ), and the results will be at [http://localhost:5001 ](http://localhost:5001 ).
2015-11-17 05:14:53 +01:00
2017-01-24 21:48:36 +01:00
Alternately, if you want to run it on a [Docker Swarm ](https://docs.docker.com/engine/swarm/ ), first make sure you have a swarm. If you don't, run:
2017-01-24 21:47:35 +01:00
```
docker swarm init
```
Once you have your swarm, in this directory run:
```
docker stack deploy --compose-file docker-stack.yml vote
```
2015-11-17 05:18:35 +01:00
Architecture
-----
2016-06-16 00:55:44 +02:00
![Architecture diagram ](architecture.png )
2015-11-17 05:18:35 +01:00
* A Python webapp which lets you vote between two options
* A Redis queue which collects new votes
2016-06-29 13:11:48 +02:00
* A .NET worker which consumes votes and stores them in…
2015-11-17 05:18:35 +01:00
* A Postgres database backed by a Docker volume
* A Node.js webapp which shows the results of the voting in real time
2015-11-15 20:59:29 +01:00
2017-01-20 22:58:22 +01:00
Note
----
The voting application only accepts one vote per client. It does not register votes if a vote has already been submitted from a client.