VotingApp
VotingApp is a microservices application, originally built by Docker, that I enhanced in several ways. I used it for Kubernetes workshops, training, and conference demos. It is simple but realistic enough to demonstrate many containers and Kubernetes concepts.

What it demonstrates
- Deployments and scaling
- Services and networking
- ConfigMaps and environment configuration
- Persistent storage
- Ingress routing
- GitOps workflows
- …
Architecture
The app is made of several microservices:
- vote-ui: front end in VueJS that enables a user to choose between a cat and a dog
- vote: backend exposing an API with Python / Flask
- redis: database where votes are stored
- worker: service, written in Go, that get votes from Redis and store the results in a Postgres database
- db: the Postgres database storing the results of the votes
- result: backend sending scores to a UI through websocket
- result-ui: front end in Angular displaying the results of the votes

Getting started
The repository includes Kubernetes manifests, a Helm chart, and Argo CD examples.
Live demo: vote.votingapp.xyz
Source: gitlab.com/voting-application