An open API service indexing awesome lists of open source software.

https://github.com/victorharri-chal/popeye

🐳 A basic application (similar to a strawpoll) to learn how Docker works. Done on my 1st year at Epitech
https://github.com/victorharri-chal/popeye

docker docker-compose epitech first-year-project java nodejs python

Last synced: 3 months ago
JSON representation

🐳 A basic application (similar to a strawpoll) to learn how Docker works. Done on my 1st year at Epitech

Awesome Lists containing this project

README

        

# popeye

![POPEYE](popeye.png)

## About The Project
The goal of this project is to containerize and define the deployment of a simple web poll application

There are five elements constituting the application, connected in a container :

- **Poll**, a flask Python web application that gathers votes and push them into a `Redis` queue.

- **Redis**, which holds the votes sent by the Poll application, awaiting for them to be consumed by the `Worker`.

- **Worker**, a java application which consumes the votes being in the Redis queue, and stores them into a `PostgreSQL` database

- **PostgreSQL database**, which (persistently) stores the votes stored by the Worker.

- **Result**, a Node.js web application that fetches the votes from the database and displays the. . . well, result.

![POPEYE_SCHEMA](popeye_schema.png)

## Requirements
* Docker
* Docker Compose

## Getting Started

Check that Docker is installed on your computer and let's start !
Clone the repositorie and build images with Docker-compose
```sh
docker-compose up --build
```
you can see the Poll on `localhost:5000/` and the Result on `localhost:5001/`

Do not forget to down containers
```sh
docker-compose down -v
```