satnami / scrumlr.io

Webapp for collaborative online retrospectives

Home Page:https://scrumlr.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Webapp for collaborative online retrospectives hosted on scrumlr.io. Read our 'Welcome' wiki page to learn more about the history and the vision of this tool.

We developed the client with the help of React while our server is implemented in Go.

Getting Started

Checkout the sources.

$ git clone https://github.com/inovex/scrumlr.io.git
$ cd scrumlr.io

Prerequisites

Run

  1. run the server (backend) with docker

    $ docker compose --project-directory server/ --profile build up -d

    *If server code has been changed make sure to run it with the --build option.

  2. run the client (frontend)

    $ yarn install
    $ yarn start

    The client will become available on http://localhost:3000

Read more on alternative development setups

Start server with nodemon and restart on code change

Start the database and the server in separate processes instead of booting up the whole compose file.

$ docker compose --project-directory server/ up -d database dashboard
$ yarn --cwd server/ install
$ yarn --cwd server/ serve

Run local Kubernetes development environment

You can optionally run the server on a local Kubernetes setup for development.

minikube

  1. Use the Docker daemon for minikube

    To make sure our local docker-built images are used for our minikube deployments.

    $ eval $(minikube docker-env)

    Important note: You have to run eval $(minikube docker-env) on each terminal you want to use, since it only sets the environment variables for the current shell session.

  2. Start your cluster

    $ minikube start

    Optional: You can increase the available cpu cores and memory size in Docker desktop. The allocated resources can then also be used for minikube (e.g. 4 CPU cores and 8GB of ram):

    $ minikube start --cpus 4 --memory 7962
  3. Create Nginx Ingress Controller

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/cloud/deploy.yaml
  4. Run our deployment script

    The build script will automatically search for all needed docker images, build them if they're missing and the deployment script will deploy all Kubernetes resources afterwards.

    $ cd deployment
    $ sh build.sh
    $ sh deploy.sh
  5. Create a minikube tunnel

    The minikube tunnel is needed so that our Ingress can be reached on 127.0.0.1.

    $ minikube tunnel

Docker Desktop

On MacOS and Windows machines you could also use the Docker Desktop application as Kubernetes context.

  1. Enable Kubernetes

    To enable Kubernetes support and install a standalone instance of Kubernetes running as a Docker container, go to Docker Desktop > Preferences > Kubernetes and then click Enable Kubernetes.

  2. Make sure to use the correct Kubernetes context

    Ensure that the context is pointing to docker-desktop.

    $ kubectl config get-contexts
    $ kubectl config use-context docker-desktop
  3. Create Nginx Ingress Controller

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/cloud/deploy.yaml
  4. Run our build & deployment script

    The build script will automatically search for all needed docker images, build them if they're missing and the deployment script will deploy all Kubernetes resources afterwards.

    $ cd deployment
    $ sh build.sh
    $ sh deploy.sh

Contributing

You're very welcome to be part of this project. You can contribute by opening an issue, by fixing a bug or by adding a feature and open a pull request. Just make sure that the jobs yarn test and yarn lint are passing and that every change is covered by unit tests.

Our team and beloved friends

brandstetterm Resaki1 Benjosh95 CronJorian Lennart01 bitionaire dbaderINO Kraft16 miiho brandeins1403 benedicthomuth schwehn42 NNKKOO

cdreier cdreier Dominik-Weinzierl andiKandi jdolinga busilina doppelreim alphapfote orangehelicopter theexiile1305 theinrichs cdreier dotcs timengel louiskroener

... and many more!

Thank you

Thanks to all our users, contributors & supporters! ❤️

inovex

A special shout-out goes to inovex for all the support and the opportunity to realize this project! 🙌 Contact us if you look for the best IT service provider out there.

License

Scrumlr is MIT licensed.

About

Webapp for collaborative online retrospectives

https://scrumlr.io

License:MIT License


Languages

Language:TypeScript 47.5%Language:Go 34.8%Language:SCSS 17.3%Language:Shell 0.1%Language:Dockerfile 0.1%Language:HTML 0.1%Language:Makefile 0.1%Language:Smarty 0.1%