https://github.com/stride-nyc/remote_retro
Free, world-class retrospectives
https://github.com/stride-nyc/remote_retro
agile elixir phoenix phoenix-channels phoenix-framework reactjs real-time redux remote retrospective websockets
Last synced: 16 days ago
JSON representation
Free, world-class retrospectives
- Host: GitHub
- URL: https://github.com/stride-nyc/remote_retro
- Owner: stride-nyc
- License: mit
- Created: 2016-12-11T17:21:02.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-26T13:50:30.000Z (20 days ago)
- Last Synced: 2025-03-26T14:46:04.189Z (20 days ago)
- Topics: agile, elixir, phoenix, phoenix-channels, phoenix-framework, reactjs, real-time, redux, remote, retrospective, websockets
- Language: Elixir
- Homepage: https://remoteretro.org/
- Size: 24.3 MB
- Stars: 579
- Watchers: 17
- Forks: 65
- Open Issues: 56
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- freaking_awesome_elixir - Elixir - A real-time application for conducting Agile retrospectives at [remoteretro.org](https://remoteretro.org) written in Elixir/Phoenix/React. (Applications)
- awesome-semantic-ui - RemoteRetro - time application for conducting Agile retrospectives at [remoteretro.org](https://remoteretro.org) written in Elixir/Phoenix/React/Semantic-UI. (Examples)
- fucking-awesome-elixir - RemoteRetro - A real-time application for conducting Agile retrospectives at [remoteretro.org](https://remoteretro.org) written in Elixir/Phoenix/React. (Applications)
- awesome-elixir - RemoteRetro - A real-time application for conducting Agile retrospectives at [remoteretro.org](https://remoteretro.org) written in Elixir/Phoenix/React. (Applications)
README
# RemoteRetro
[](https://circleci.com/gh/stride-nyc/remote_retro)
[](https://coveralls.io/github/stride-nyc/remote_retro?branch=master)This repository houses the application code for [RemoteRetro.org](http://remoteretro.org), a free web app that allows distributed teams to conduct Agile retrospectives. It is written in Elixir/Phoenix/React/Redux, and is sponsored by [Stride Consulting](https://www.stridenyc.com).
## Table of Contents
1. [Dev Environment Setup](#dev-environment-setup)
1. [Tests](#tests)
1. [Code](#code)
1. [Contributing](#contributing)
1. [Code of Conduct](#code-of-conduct)
1. [Acknowledgements](#acknowledgements)
1. [License](#license)## Dev Environment Setup
### PostgreSQL
- Install [Homebrew](http://brew.sh/)
- **Note:** You'll be prompted to install the command-line developer tools. Do it.
- Install PostgreSQL via Homebrew:```bash
brew install postgresql# (follow directions supplied by brew output upon successful installation)
createdb
# depending on how you installed postgres, this user may already exist
createuser -s postgres# make sure you can log in to default database
psql -h localhost
```#### Elixir/Phoenix Dependencies
- [Install the asdf version manager](https://asdf-vm.com/#/core-manage-asdf-vm)
- Install Erlang, Elixir, and their dependencies by running `bin/install_erlang_and_elixir_with_dependencies`
- Create the "remote_retro_dev" database and migrate via `mix ecto.create && mix ecto.migrate`
- Create the "remote_retro_test" database and migrate via `MIX_ENV=test mix ecto.create && mix ecto.migrate`#### Node Dependencies
- [Ensure you have the asdf version manager installed](https://asdf-vm.com/#/core-manage-asdf-vm)
- Install the project's Node version and Node dependencies by running `bin/install_node_with_dependencies`#### 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:
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).
```bash
export REMOTE_RETRO_GOOGLE_OAUTH_CLIENT_ID=""
export REMOTE_RETRO_GOOGLE_OAUTH_CLIENT_SECRET=""
export REMOTE_RETRO_GOOGLE_OAUTH_REDIRECT_URI="http://localhost:4000/auth/google/callback"
```Finally, [enable](https://console.developers.google.com/apis/api/plus.googleapis.com/overview) the Google+ API for your project.
#### And Voila
Start Phoenix endpoint with `mix`
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
## Tests
To continually execute the backend unit tests on file change:
```bash
mix test.watch
```To execute the backend unit tests manually:
```bash
mix test
```To execute the end-to-end tests:
```bash
mix e2e
```To continually execute the client-side unit tests on file change:
```bash
yarn test:watch
```To execute the client-side unit tests manually:
```bash
yarn test
```## Code
To run the local eslint:
```bash
mix lint
```## Contributing
[Contributing Guidelines](CONTRIBUTING.md)
## Code of Conduct
[The Contributor Covenant](CODE_OF_CONDUCT.md)
## 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](https://www.stridenyc.com) for giving this project the opportunity it needed to bloom.
## License
[MIT](LICENSE)