Skip to content

indhuja-avs/voting-app

Repository files navigation

Example Voting App

A simple distributed application running across multiple Docker containers.

Getting started

Run in this directory to build and run the app:

docker compose build
docker compose up

For the first time, execute commands described in mongo.sh one by one in terminal.

The vote app will be running at http://localhost:5100, and the results will be at http://localhost:5001.

Architecture

Architecture diagram

  • A front-end web app in Python which lets you vote between two options
  • A Redis which collects new votes
  • A .NET worker which consumes votes and stores them in…
  • A Postgres database backed by a Docker volume
  • A Node.js web app which shows the results of the voting in real time

Notes

The voting application only accepts one vote per client browser. It does not register additional votes if a vote has already been submitted from a client.

This isn't an example of a properly architected perfectly designed distributed app... it's just a simple example of the various types of pieces and languages you might see (queues, persistent data, etc), and how to deal with them in Docker at a basic level.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published