{"id":13507372,"url":"https://github.com/stride-nyc/remote_retro","last_synced_at":"2025-03-30T08:30:30.901Z","repository":{"id":37333973,"uuid":"76188623","full_name":"stride-nyc/remote_retro","owner":"stride-nyc","description":"Free, world-class retrospectives","archived":false,"fork":false,"pushed_at":"2025-03-26T13:50:30.000Z","size":25438,"stargazers_count":579,"open_issues_count":56,"forks_count":65,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-26T14:46:04.189Z","etag":null,"topics":["agile","elixir","phoenix","phoenix-channels","phoenix-framework","reactjs","real-time","redux","remote","retrospective","websockets"],"latest_commit_sha":null,"homepage":"https://remoteretro.org/","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stride-nyc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-11T17:21:02.000Z","updated_at":"2025-03-23T16:04:54.000Z","dependencies_parsed_at":"2024-05-01T15:27:36.272Z","dependency_job_id":"3bf067c4-85b3-43ae-8ae7-e764c2317672","html_url":"https://github.com/stride-nyc/remote_retro","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stride-nyc%2Fremote_retro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stride-nyc%2Fremote_retro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stride-nyc%2Fremote_retro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stride-nyc%2Fremote_retro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stride-nyc","download_url":"https://codeload.github.com/stride-nyc/remote_retro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246296325,"owners_count":20754623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agile","elixir","phoenix","phoenix-channels","phoenix-framework","reactjs","real-time","redux","remote","retrospective","websockets"],"created_at":"2024-08-01T02:00:32.425Z","updated_at":"2025-03-30T08:30:30.888Z","avatar_url":"https://github.com/stride-nyc.png","language":"Elixir","funding_links":[],"categories":["Applications","Elixir","Examples"],"sub_categories":[],"readme":"# RemoteRetro\n\n[![CircleCI](https://circleci.com/gh/stride-nyc/remote_retro.svg?style=shield)](https://circleci.com/gh/stride-nyc/remote_retro)\n[![Coverage Status](https://coveralls.io/repos/github/stride-nyc/remote_retro/badge.svg)](https://coveralls.io/github/stride-nyc/remote_retro?branch=master)\n\nThis 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).\n\n## Table of Contents\n\n1. [Dev Environment Setup](#dev-environment-setup)\n1. [Tests](#tests)\n1. [Code](#code)\n1. [Contributing](#contributing)\n1. [Code of Conduct](#code-of-conduct)\n1. [Acknowledgements](#acknowledgements)\n1. [License](#license)\n\n## Dev Environment Setup\n\n### PostgreSQL\n\n- Install [Homebrew](http://brew.sh/)\n  - **Note:** You'll be prompted to install the command-line developer tools. Do it.\n- Install PostgreSQL via Homebrew:\n\n```bash\nbrew install postgresql\n\n  # (follow directions supplied by brew output upon successful installation)\n\ncreatedb\n\n# depending on how you installed postgres, this user may already exist\ncreateuser -s postgres\n\n# make sure you can log in to default database\npsql -h localhost\n```\n\n#### Elixir/Phoenix Dependencies\n\n- [Install the asdf version manager](https://asdf-vm.com/#/core-manage-asdf-vm)\n- Install Erlang, Elixir, and their dependencies by running `bin/install_erlang_and_elixir_with_dependencies`\n- Create the \"remote_retro_dev\" database and migrate via `mix ecto.create \u0026\u0026 mix ecto.migrate`\n- Create the \"remote_retro_test\" database and migrate via `MIX_ENV=test mix ecto.create \u0026\u0026 mix ecto.migrate`\n\n#### Node Dependencies\n\n- [Ensure you have the asdf version manager installed](https://asdf-vm.com/#/core-manage-asdf-vm)\n- Install the project's Node version and Node dependencies by running `bin/install_node_with_dependencies`\n\n#### Google OAuth\n\nAuthentication 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: \u003chttps://console.developers.google.com/apis\u003e\n\nNext, click on \"Credentials\" in the left sidebar nav. On the right hand side, click on the \"Create Credentials\" button and select \"OAuth client ID\".\n\n##### Settings\n\n- Application type: Web application\n- Authorized JavaScript origins: `http://localhost:4000`\n- Authorized redirect URIs: `http://localhost:4000/auth/google/callback`\n\nClick on the Create button. Using the information Google provides, add the following lines to your profile and source (or open a new terminal).\n\n```bash\nexport REMOTE_RETRO_GOOGLE_OAUTH_CLIENT_ID=\"\u003cClient Id\u003e\"\nexport REMOTE_RETRO_GOOGLE_OAUTH_CLIENT_SECRET=\"\u003cClient secret\u003e\"\nexport REMOTE_RETRO_GOOGLE_OAUTH_REDIRECT_URI=\"http://localhost:4000/auth/google/callback\"\n```\n\nFinally, [enable](https://console.developers.google.com/apis/api/plus.googleapis.com/overview) the Google+ API for your project.\n\n#### And Voila\n\nStart Phoenix endpoint with `mix`\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.\n\n## Tests\n\nTo continually execute the backend unit tests on file change:\n\n```bash\nmix test.watch\n```\n\nTo execute the backend unit tests manually:\n\n```bash\nmix test\n```\n\nTo execute the end-to-end tests:\n\n```bash\nmix e2e\n```\n\nTo continually execute the client-side unit tests on file change:\n\n```bash\nyarn test:watch\n```\n\nTo execute the client-side unit tests manually:\n\n```bash\nyarn test\n```\n\n## Code\n\nTo run the local eslint:\n\n```bash\nmix lint\n```\n\n## Contributing\n\n[Contributing Guidelines](CONTRIBUTING.md)\n\n## Code of Conduct\n\n[The Contributor Covenant](CODE_OF_CONDUCT.md)\n\n## Acknowledgements\n\nMany 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.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstride-nyc%2Fremote_retro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstride-nyc%2Fremote_retro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstride-nyc%2Fremote_retro/lists"}