bvfnbk / planning-poker

WebRTC-based stateless Planning Poker Game.
Apache License 2.0
0 stars 0 forks source link

Planning Poker

A WebRTC-based, stateless planning poker game. The application consists out of several modules.

Modules

Requirements

Usage

Build Modules

Build all application module container images (including their versions) as described in

or use the script

./bin/build_image.sh

which helps with building each module.

Usage: build.sh MODULE VERSION

Where:
    MODULE    : One of
                    api
                    frontend
                    signaling
                    gateway
    VERSION   : The version tag.

The module name is prefixed with the string planning-poker-. Thus, building creates the image planning-poker-MODULE:VERSION in the local registry.

Or run build.sh all VERSION to build all module images and tag them accordingly.

Run

Run

podman compose up

in the project base directory.

Please note:

Network Configuration

All modules are supposed to be served as container. This section provides an overview over the network configuration used by default:

Service Hostname Port (External) Port (Internal) Target
gateway gateway 8000 80 Upstream services, e.g. frontend
8001 81 Websocket
frontend frontend 8100 80 Page
signaling signaling 8200 8080 WebSocket
api api 8300 8080 HTTP REST API Service.

Please note: At the moment it is not possible for the gateway to proxy the signaling service behind the same port as the other services. The signaling service is a TCP service which is handled before HTTP which effectively disables the HTTP route to the frontend.

Overview: HTTP

flowchart LR
  Frontend["<code>frontend</code>"]
  Gateway["<code>gateway</code>"]
  API["<code>api</code>"]
  Client
  Client -- :8000 --> Gateway
  Client -- :8100 --> Frontend
  Gateway -- :80 --> Frontend
  Gateway -- :8080 --> API
  Client -- :8300 --> API

Overview: WebSocket (TCP)

flowchart LR
  Signaling["<code>signaling</code>"]
  Gateway["<code>gateway</code>"]
  Client
  Client -- :8001 --> Gateway
  Client -- :8200 --> Signaling
  Gateway -- :81 --> Signaling