{"id":13819263,"url":"https://github.com/cheshire137/overwatch-team-comps","last_synced_at":"2026-02-26T06:55:31.591Z","repository":{"id":66475773,"uuid":"83734793","full_name":"cheshire137/overwatch-team-comps","owner":"cheshire137","description":"Plan your Overwatch team composition per map. Share your team comp with others.","archived":false,"fork":false,"pushed_at":"2022-12-06T22:59:52.000Z","size":6638,"stargazers_count":12,"open_issues_count":17,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-14T11:46:26.792Z","etag":null,"topics":["battle-net","jest-tests","overwatch","rails-application","react","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/cheshire137.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2017-03-02T23:18:56.000Z","updated_at":"2024-05-13T14:03:45.000Z","dependencies_parsed_at":"2023-06-26T01:52:28.955Z","dependency_job_id":null,"html_url":"https://github.com/cheshire137/overwatch-team-comps","commit_stats":{"total_commits":694,"total_committers":7,"mean_commits":99.14285714285714,"dds":"0.047550432276657006","last_synced_commit":"c6420c554c7d6b19c847e586d718bc6a4bfe8404"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire137%2Foverwatch-team-comps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire137%2Foverwatch-team-comps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire137%2Foverwatch-team-comps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire137%2Foverwatch-team-comps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheshire137","download_url":"https://codeload.github.com/cheshire137/overwatch-team-comps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234808947,"owners_count":18890088,"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":["battle-net","jest-tests","overwatch","rails-application","react","ruby"],"created_at":"2024-08-04T08:00:43.724Z","updated_at":"2025-10-01T01:31:24.405Z","avatar_url":"https://github.com/cheshire137.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘","Community"],"sub_categories":["Github"],"readme":"# Overwatch Team Comps\n\n[![Build Status](https://travis-ci.org/cheshire137/overwatch-team-comps.svg?branch=master)](https://travis-ci.org/cheshire137/overwatch-team-comps)\n\nA web app that allows Overwatch players to plan out their team composition\nfor every point of every map on both offense and defense. Players should be\nable to save their team comps as well as be able to easily share their team\ncomps.\n\nFeature planning is done on [our Trello board](https://trello.com/b/STeIZ1td/project-overwatch-team-comp-organizer).\n\nIf interested, see also [our requirements document](https://trello.com/c/GCIwE5We/5-end-user-requirements-version-1) that contains a high-level description of all the end-user features of this product.\n\n## App Structure\n\n- Ruby on Rails web app using [React](https://facebook.github.io/react/) for a speedy,\n  single-page front end\n    - This means most views will be implemented in\n      [JSX](https://facebook.github.io/react/docs/jsx-in-depth.html) in\n      app/assets/javascripts/components/ instead of ERB in app/views/.\n- Rails endpoints will provide a JSON REST API for the front end\n- PostgreSQL database for convenient deployment to Heroku\n- Potential integration with OAuth providers such as Discord for authentication\n  built on top of [Devise](https://github.com/plataformatec/devise)\n\n## How to Develop\n\nYou will need Ruby, Rubygems, PostgreSQL, and npm installed.\n\n```bash\nbundle install\nnpm install\nbin/rake db:setup\nbundle exec rails s\n```\n\nVisit [localhost:3000](http://localhost:3000).\n\nYou can view the style guide at\n[localhost:3000/pages/styleguide](http://localhost:3000/pages/styleguide).\n\nTo add a new JavaScript package: `npm install WHATEVER_PACKAGE --save`\n\n### OAuth in Local Development\n\nTo test OAuth signin locally, you will need to\n[create a Battle.net API app](https://dev.battle.net),\n`cp dotenv.sample .env`, and\ncopy your app key and secret into the .env file. You will also need to\nuse a service like [ngrok](https://ngrok.com/) to have a public URL\nthat will hit your local server. Start ngrok via `ngrok http 3000`;\nlook at the https URL it spits out. In your Battle.net app, set\n`https://your-ngrok-id-here.ngrok.io/users/auth/bnet/callback` as\nthe \"Register Callback URL\" value. Update .env so that `BNET_APP_HOST`\nis set to the same `your-ngrok-id-here.ngrok.io` as ngrok spit out and you used\nin the Battle.net app; omit the `https://` in .env. Start the Rails server\nvia `bundle exec rails s`. Now you should be able to go to\n`https://your-ngrok-id-here.ngrok.io/` and click the Battle.net link.\n\n### Installing PostgreSQL on macOS\n\nThere are multiple ways to install PostgreSQL, but the recommended way is\nthrough homebrew:\n\n```shell\nbrew install postgresql\n```\n\nTo manage your installation of PostgreSQL, one way is to use `brew/services`:\n\n```shell\nbrew install homebrew/services\nbrew services start postgresql\n```\n\nAt anytime you can stop the PostgreSQL service:\n\n```shell\nbrew services stop postgresql\n```\n\n## How to Test\n\nAfter running through the development setup above, then:\n\n```bash\nnpm test # to run the JavaScript style checker and JavaScript tests\nbundle exec rspec # to run Rails tests\n```\n\nYou can run just the style checker via `npm run style`. You can run just\nthe JavaScript tests via `npm run unit-test`.\n\nSnapshots are used in JavaScript tests --\nsee [`spec/javascript/components/__snapshots__/`](spec/javascript/components/__snapshots__/) --\nto test that a React component is rendered the same way consistently based\non the props it's given. If you update a component, a test may fail\nbecause the snapshot is now different from what is rendered. Manually\ncompare the two and if the change is expected, update the now out-of-date\nsnapshot with `npm run unit-test -- -u`.\n\nSee also these links about the JavaScript tests:\n\n- [Shallow rendering with Enzyme](http://airbnb.io/enzyme/docs/api/shallow.html)\n- [Jest matchers](https://facebook.github.io/jest/docs/expect.html#content)\n- [ESLint rules](http://eslint.org/docs/rules/)\n\n## How to Deploy to Heroku\n\nCreate an [app on Heroku](https://dashboard.heroku.com/apps).\n\nCreate a [Battle.net app](https://dev.battle.net) and set its \"Register Callback URL\" to\n`https://your-heroku-app.herokuapp.com/users/auth/bnet/callback`.\n\n```bash\nheroku git:remote -a your-heroku-app\nheroku buildpacks:add https://github.com/heroku/heroku-buildpack-nodejs.git\nheroku buildpacks:add https://github.com/heroku/heroku-buildpack-ruby.git\nheroku config:set BNET_APP_ID=your_app_id_here\nheroku config:set BNET_APP_SECRET=your_app_secret_here\nheroku config:set BNET_APP_HOST=your-heroku-app.herokuapp.com\ngit push heroku master\nheroku run rake db:migrate\nheroku run rake db:seed\nheroku open\n```\n\n## Mockups\n\nThese show the design we are building toward:\n\n![Sample Mockup of Team Comp Form 01](https://raw.githubusercontent.com/cheshire137/overwatch-team-comps/master/mockups/readme%20screens%20-%20team%20comp%20form%2001.png)\n\n![Sample Mockup of Team Comp Form 02](https://raw.githubusercontent.com/cheshire137/overwatch-team-comps/master/mockups/readme%20screens%20-%20team%20comp%20form%2002.png)\n\n![Sample Mockup of Hero Pool Page](https://raw.githubusercontent.com/cheshire137/overwatch-team-comps/master/mockups/readme%20screens%20-%20hero%20pool.png)\n\n![Sample Mockup of Hero Select Drop Down Menu](https://raw.githubusercontent.com/cheshire137/overwatch-team-comps/master/mockups/readme%20screens%20-%20hero%20select%20drop%20down.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheshire137%2Foverwatch-team-comps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheshire137%2Foverwatch-team-comps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheshire137%2Foverwatch-team-comps/lists"}