/retro

A self-hostable web application designed for remote retrospectives

Primary LanguageTypeScriptMIT LicenseMIT

Retro - Make Retrospectives Great Again

CircleCI (all branches) GitHub release GitHub code style: prettier

Table of Contents

What is Retro?

Retro is a tool that you can use for retrospectives and planning poker sessions. The goal of Retro is to aid teams in remote retrospectives.

At work, we were using third party retrospective tools, which meant we couldn't express ourselves freely because of privacy reasons. Retro provides an open-source solution, where you can host the app on your own servers, so you can discuss freely again, since you own the data.

Example - Retrospective

retro_example

Example - Planning Poker

planning_poker_example

Usage Locally

Install dependencies

$ cd backend && npm i && cd ..
$ cd frontend && npm i && cd ..

Run servers

$ cd backend && npm run start:dev && cd ..
$ cd frontend && npm run start && cd ..

Branching

  • The master branch is the latest development stage
  • Stable releases are tagged with their respective version number
  • There might be feature branches that contain new experimental stuff

Deployment Examples

PM2

  • Install PM2 on your server
  • Clone this project on your server
  • Install the dependencies by running npm i on backend and frontend
  • Check if the proxy settings are correct
    • Check backend/src/config/index.ts
    • Check frontend/src/setupProxy.js
    • Check frontend/src/utils/index.ts
  • Provide an .env.production.local file inside of frontend
    # Example
    REACT_APP_PROD_URL=http://mydomain.com
    REACT_APP_PROD_PORT=80
    
  • Build the frontend by running npm run deploy
  • Go to the backend folder and run pm2 start processes.json

Docker

  • There is a Dockerfile on the project root which builds everything and runs the server
  • You might want to define your own restart policy then
  • The server runs without process managers. You can read here why.

Contributing

  • This project uses Prettier and the latest LTS version of Node.js
  • You can also develop with the provided Docker containers!
    • on Linux, make sure to set an environment variable, since host.docker.internal is not working:
      • export DOCKER_HOST_IP=$(docker network inspect bridge --format='{{(index .IPAM.Config 0).Gateway}}')

Project State

  • You can always watch the current state of the project at Trello

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Yadullah Duman

💻 🚧 📆 👀 🤔

Adrian Endrich

💻

Claas Busemann

💻

PaulaBre

💻

Tobias

💻

ravensinth

💻

Marius Wichtner

💻

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