Giter VIP home page Giter VIP logo

retromeet-recruitment-app's Introduction

Retromeet App

Introduction

Retromeet is an application meant for using during Scrum retrospective meetings, but it can also be used for other purposes whenever a board with columns and cards is needed. Basic functionality includes:

  • setting your username
  • creating a new retro with custom columns
  • adding/editing/deleting cards inside columns
  • cards voting with votes limit
  • going through different stages of the meeting

The app uses OCRA, which derives from Create React App, but there are some custom solutions included as well. They will be described further below.

The project is divided into client and server parts.

Setup

Starting Docker

  • Install docker
  • rename all configuration files .docker/.env.dist -> .env, config.server.json.dist -> .env, .env.dist -> .env,
  • enter .docker directory and use: docker-compose up --build -d

Alternatively if you don’t want to use docker you can run both client and server manually:

install and run mongodb

yarn install

yarn start:client

yarn dev:server

Client

src/client

Material UI

On the client side we use material-ui components and their solution for CSS in JS.

Redux Form

The forms in the app(e.g. create, join retro) are implemented using redux-form and redux-form-material-ui components.

WebSocket Provider

website/services/websocket

We are using a custom WebSocket Provider that uses socket.io.

Locale Provider

website/i18n

We are using custom Locale Provider based on react-intl. It’s basically a wrapper around IntlProvider.

Server

src/server

On the server side we use mongoose object modeling.

Structure

Application structure is action based (like a client redux implementation). Directory contains actions catalogue with a set of actions based on the application state and model catalogue with a mongoose models. In order to add new “action” it’s necessary to add new directory with two files <action_name>.actions.js and <action_name>.handlers.js. The .actions.js file defines which actions are being implemented in the socket and defines their name. The .handlers.js implement handlers for those actions which takes given parameters and state to interact with mongodb through mongoose models. Results can be emitted or broadcasted (through action-performer.js). Created actions are being automatically handled while connecting to socket.

retromeet-recruitment-app's People

Contributors

gosiamermon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.