Giter Club home page Giter Club logo

remote_retro's Introduction

CircleCI Coverage Status Ebert

RemoteRetro

remote_retro_idea_submission_board

This repository houses the web application code for Remote Retro, an open source professional development project written in Elixir/Phoenix/React and sponsored by Stride Consulting.

Table of Contents

  1. Roadmap to MVP
  2. Project Management
  3. Dev Environment Setup
  4. Tests
  5. Code
  6. Contributing
  7. Code of Conduct
  8. Acknowledgements
  9. License

Roadmap to MVP

The MVP aims to provide a collaborative, real-time, facilitator-driven retrospective through the following stages:

  1. The Retrospective Prime Directive
    • frame the retro as a safe, collaborative space
  2. Idea Generation
    • invite ideas (happy, sad, confused) from participants
  3. Mute Mapping
    • participants group ideas into categories without speaking
  4. Labeling + Voting
    • participants vote on categories for discussion and root-cause analysis
  5. Action Item Generation
    • participants generate and assign action items
  6. Action Item Distribution
    • facilitator distributes action items via email to all retro participants

Project Management

To see the project's current feature pipeline, simply install the wonderful ZenHub Chrome Extension.

  • visit ZenHub.io, install the ZenHub Chrome Extension, and authorize when prompted
    • Note: this installation assumes you visit zenhub.io using Chrome
  • once the extension is installed, you should be able to visit the boards by typing 'b', or, if clicking is more your speed, simply click the "Boards" tab on the repo's homepage

Dev Environment Setup

PostgreSQL

  • Install Homebrew
    • Note: You'll be prompted to install the command-line developer tools. Do it.
  • Install PostgreSQL via Homebrew:
brew install postgresql

# start postgresql at login
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
# load postgresql now
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

initdb /usr/local/var/postgres -E utf8
createdb

# make sure you can log in to default database
psql -h localhost

Elixir/Phoenix Dependencies

  • Install Elixir
  • Install the Phoenix application's dependencies via mix deps.get
  • Compile the project and custom mix tasks via mix compile
  • Create the "remote_retro_dev" database and migrate via mix ecto.create && mix ecto.migrate
    • Note: if the prior two commands are throwing errors, ensure that Postgres is setup properly on your machine:
    1. Login to the default database psql -h localhost
    2. Verify that username "postgres" exists with SELECT usename from pg_user;
    3. If not found, then run CREATE USER postgres WITH SUPERUSER;

Node Dependencies

Install nvm (node version manager):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

Note: additional nvm installation notes found at the nvm repo.

Install the latest node via nvm:

nvm install 8.7

Ensure the latest node is your default node version in new shells:

nvm alias default 8.7

Install Global NPM Packages

npm install -g yarn phantomjs chromedriver

Install Local NPM Packages via Yarn

yarn

Google OAuth

Authentication within Remote Retro relies on Google OAuth and the Google+ API. To set this up, navigate to the Google API console and create a new project: https://console.developers.google.com/apis

Next, click on "Credentials" in the left sidebar nav. On the right hand side, click on the "Create Credentials" button and select "OAuth client ID".

Settings

  • Application type: Web application
  • Authorized JavaScript origins: http://localhost:4000
  • Authorized redirect URIs: http://localhost:4000/auth/google/callback

Click on the Create button. Using the information Google provides, add the following lines to your profile and source (or open a new terminal).

export REMOTE_RETRO_GOOGLE_OAUTH_CLIENT_ID="<Client Id>"
export REMOTE_RETRO_GOOGLE_OAUTH_CLIENT_SECRET="<Client secret>"
export REMOTE_RETRO_GOOGLE_OAUTH_REDIRECT_URI="http://localhost:4000/auth/google/callback"

Finally, enable the Google+ API for your project.

And Voila!

Start Phoenix endpoint with mix

Now you can visit localhost:4000 from your browser.

Tests

To continually execute the backend unit tests on file change:

mix test.watch

To execute the end-to-end tests:

mix e2e

To continually execute the client-side unit tests on file change, run:

npm run test:watch

Code

To run the local eslint:

mix lint

Contributing

Contributing Guidelines

Code of Conduct

The Contributor Covenant

Acknowledgements

Many thanks to the project's contributors for devoting their time, energy, and passion, and additional thanks go out to the leadership of Stride Consulting for giving this project the opportunity it needed to bloom.

License

MIT

remote_retro's People

Contributors

vanderhoop avatar qlaire avatar samdec11 avatar tnewell5 avatar matthewlehner avatar zmackie avatar pulsedemon avatar ianmcnally avatar caporta avatar crq avatar tnewell-nbc avatar ddipanfilo avatar damonblack avatar williamcodes avatar vanderhoopnbc avatar trevoke avatar bglusman avatar genegurvich avatar kathgironpe avatar kimberlysuazo avatar roh avatar plantfansam avatar ygabo avatar jhlllnd avatar

Watchers

James Cloos avatar Joe Bew avatar  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.