gotdibbs / poinz

Distributed Planning Poker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PoinZ - Distributed Planning Poker

Build Status

PoinZ (/pɔɪnts/) is a simple web app for distributed teams in an agile setup. It allows to easily estimate items of interest (e.g. "stories").

The goal was to provide a ready-to-use tool without the hassle of registration/login, setup and a lot of configuration.

Checkout the App at https://poinz.herokuapp.com/

poinz_screenshot

Similar tools are : https://www.pointingpoker.com/ or https://www.planningpoker.com/

User Manual

Confused? Or you want to learn about hidden features? Read the User Manual.

Contribute

You can contribute in multiple ways...

  • Maybe you have a feature request? Found a bug? General feedback? Please open a new issue
  • You want to extend Poinz? Or fix one of the issues? Check out the Development section.

Development

Prerequisites

  • Install nodeJS at v10+ and npm at v6+.
  • Install git
  • Install docker if you want to build PoinZ

Fork & checkout the repository then install all npm dependencies.

$ npm install (This will also install client and server npm dependencies)

Start the backend

$ cd server/ && npm run start:dev

Serve the client in dev mode via webpack-dev-server

$ cd client/ && npm start

Then you can open the app at http://localhost:9000/

Style

Run $ npm t in the root directory to lint all files and run tests.

Build

Our build produces a docker image that contains nodejs and our poinz server. Make sure you have docker installed on your machine and your user is in the "docker" usergroup. ($ sudo groupadd docker and $ sudo usermod -aG docker $USER)

In project root, run

$ npm run build

This will copy all backend and client files to deploy/. And then start the docker build.

See Deployment for more information.

To start the newly built image locally, in detached mode with port forwarding:

$ docker run -p 3000:3000 -d xeronimus/poinz

Architecture

Technologies and Frameworks

The PoinZ Client is built with ReactJS and redux. Webpack serves as bundling tool.

The PoinZ Backend is a nodeJS express server.

Client and server communicate over websockets (socket.io).

Command and Events documentation

Our backend handles commands sent by the client over a websocket connection. Every command produces one or multiple events that modify the respective room (aka "aggregate"). Then the events are sent back to the client.

(Somewhat inspired by CQRS.)

See the generated command and event docu;

About

Distributed Planning Poker

License:MIT License


Languages

Language:JavaScript 98.2%Language:CSS 1.0%Language:HTML 0.5%Language:Dockerfile 0.2%Language:Shell 0.1%