This repository houses the application code for Remote Retro, an open source professional development project written in Elixir/Phoenix/React and sponsored by Stride Consulting.
Table of Contents
- Roadmap to MVP
- Project Management
- Dev Environment Setup
- Code of Conduct
Roadmap to MVP
The MVP aims to provide a collaborative, real-time, facilitator-driven retrospective through the following stages:
- The Retrospective Prime Directive
- frame the retro as a safe, collaborative space
- Idea Generation
- invite ideas (happy, sad, confused) from participants
- Mute Mapping
- participants group ideas into categories without speaking
- Labeling + Voting
- participants vote on categories for discussion and root-cause analysis
- Action Item Generation
- participants generate and assign action items
- Action Item Distribution
- facilitator distributes action items via email to all retro participants
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
- 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
- Install Elixir
- Install the Phoenix application's dependencies via
- Compile the project and custom mix tasks via
- 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:
- Login to the default database
psql -h localhost
- Verify that username "postgres" exists with
SELECT usename from pg_user;
- If not found, then run
CREATE USER postgres WITH SUPERUSER;
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
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".
- Application type: Web application
- Authorized redirect URIs:
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.
Start Phoenix endpoint with
Now you can visit
localhost:4000 from your browser.
To continually execute the backend unit tests on file change:
To execute the end-to-end tests:
To continually execute the client-side unit tests on file change, run:
npm run test:watch
To run the local eslint:
Code of Conduct
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.