Skip to content

MaibornWolff/retro

Repository files navigation

Retro - Reflect, Refine, Repeat

github_workflow GitHub release GitHub code style: prettier

What is Retro?

Retro is a tool that is used for retrospectives and planning poker sessions. The goal of Retro is to have an easy to use and secure way of having retro and planning poker sessions.

Retro uses a peer-to-peer approach, where all communication including retro and poker information is shared between users only and never reaches a backend server. The backend server is only used for signaling, which is the initial handshake between the participants in a room. This is possible by following the WebRTC protocol.

Retrospective

retro_example

Planning Poker

planning_poker_example

Requirements

  • Latest Node.js LTS version
  • NPM version >= 7

Hosting

This application requires three services to be running and configured correctly.

Docker image Exposed port
Retro Frontend 80
Retro Backend 3001
Signaling Server 9000

WebRTC

By default, the clients identify the IP address of the other peers by using a public STUN server by Google. A TURN server is not provided by default and must be hosted additionally. The frontend can be configured to overwrite the ice server urls.

Environment variables example

Frontend

  • RETRO_MAX_VOTE_COUNT = 3
  • BACKEND_PROTOCOL = "https"
  • BACKEND_HOST = "my-api-domain.com"
  • BACKEND_PORT = 443
  • SIGNALING_SERVER_PROTOCOL = "https"
  • SIGNALING_SERVER_HOST = "my-signaling-domain.com"
  • SIGNALING_SERVER_PORT = 443
  • ICE_SERVER_URLS = "stun://stun.l.google.com:19302,turn://user:password@test.turn.server:1914"

Backend

  • CORS_ORIGIN = "my-api-domain.com,my-signaling-domain.com"

Development

Quick start guide can be found here

Contributing

For information on how to contribute, see Contributing

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Adrian Endrich
Adrian Endrich

💻
Ben Willenbring
Ben Willenbring

💻 🤔 🚧 📆
Claas Busemann
Claas Busemann

💻
Dominik Schumann
Dominik Schumann

💻
Lukas Richter
Lukas Richter

💻 🤔 🚧 📆
Maria Hallmann
Maria Hallmann

💻 ⚠️
Marius Wichtner
Marius Wichtner

💻
Martin Schröder
Martin Schröder

💻
PaulaBre
PaulaBre

💻
Tobias
Tobias

💻
Yadullah Duman
Yadullah Duman

💻 👀 🤔
ravensinth
ravensinth

💻
Manuel Lehé
Manuel Lehé

💻

This project follows the all-contributors specification. Contributions of any kind welcome!