Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/maibornwolff/retro

A self-hostable web application designed for remote retrospectives
https://github.com/maibornwolff/retro

board nodejs organisation planning-poker react remote remote-retrospectives retro retrospectives socket-io typescript

Last synced: about 1 month ago
JSON representation

A self-hostable web application designed for remote retrospectives

Awesome Lists containing this project

README

        

# Retro - Reflect, Refine, Repeat

![github_workflow](https://github.com/MaibornWolff/retro/actions/workflows/ci.yml/badge.svg) ![GitHub release](https://img.shields.io/github/release/yduman/retro.svg?style=flat-square) ![GitHub](https://img.shields.io/github/license/yduman/retro.svg?style=flat-square) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/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](https://webrtc.org/) protocol.

## Retrospective

![retro_example](./assets/retro_example_page.png)

## Planning Poker

![planning_poker_example](./assets/poker_example_page.png)

## 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](https://hub.docker.com/r/retroapp/retro-frontend) | 80 |
| [Retro Backend](https://hub.docker.com/r/retroapp/retro-backend) | 3001 |
| [Signaling Server](https://hub.docker.com/r/peerjs/peerjs-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:[email protected]:1914"

#### Backend

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

## Development

Quick start guide can be found [here](./documentation/development.md)

## Contributing

For information on how to contribute,
see [Contributing](https://github.com/MaibornWolff/retro/blob/master/CONTRIBUTING.md)

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/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](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!