{"id":13516428,"url":"https://github.com/odota/web","last_synced_at":"2025-04-12T12:37:39.317Z","repository":{"id":8804798,"uuid":"59816990","full_name":"odota/web","owner":"odota","description":"React web interface for the OpenDota platform","archived":false,"fork":false,"pushed_at":"2025-03-11T21:16:00.000Z","size":177641,"stargazers_count":1096,"open_issues_count":125,"forks_count":394,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-04-05T10:01:43.554Z","etag":null,"topics":["data","dota","hacktoberfest","javascript","react","redux","ui","visualization","webpack"],"latest_commit_sha":null,"homepage":"https://www.opendota.com","language":"JavaScript","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/odota.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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-05-27T08:06:05.000Z","updated_at":"2025-04-05T05:38:19.000Z","dependencies_parsed_at":"2023-12-15T08:23:04.067Z","dependency_job_id":"d72a6e7b-4e3e-4a87-8c84-62e2e9b80aeb","html_url":"https://github.com/odota/web","commit_stats":{"total_commits":10754,"total_committers":200,"mean_commits":53.77,"dds":"0.38320624883764176","last_synced_commit":"a0038b022e7b882a6a8d37263f52fe4af6ff707d"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odota%2Fweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odota%2Fweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odota%2Fweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odota%2Fweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/odota","download_url":"https://codeload.github.com/odota/web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248567738,"owners_count":21125887,"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":["data","dota","hacktoberfest","javascript","react","redux","ui","visualization","webpack"],"created_at":"2024-08-01T05:01:22.207Z","updated_at":"2025-04-12T12:37:39.284Z","avatar_url":"https://github.com/odota.png","language":"JavaScript","readme":"# opendota-web\n\n[![Help Contribute to Open Source](https://www.codetriage.com/odota/web/badges/users.svg)](https://www.codetriage.com/odota/web)\n\nOpenDota Web UI: A web interface for viewing Dota 2 data. This utilizes the [OpenDota API](https://docs.opendota.com), which is also an [open source project](https://github.com/odota/core).\n\n## Quickstart\n\n- Clone the repo using `git clone git@github.com:odota/web.git`\n\n### With Docker\n\n```\n$ docker-compose up\n```\n\n- Visit port 3000 on your development machine.\n\n### Without Docker\n\n- Install Node.js (v16 or greater) (download [installer](https://nodejs.org/en/download/) or [install via package manager](https://nodejs.org/en/download/package-manager/))\n- `npm install`\n- `npm start`\n- Visit port 3000 on your development machine.\n\n## Contributing\n\n- Make some changes.\n- `npm run lint` to check your code for linting errors.\n- `npm test` to check all app routes for uncaught JavaScript errors.\n- Submit a pull request. Wait for review and merge.\n- Congratulations! You're a contributor.\n\n## Configuration\n\n- You can set the following environment variables:\n  - PORT: Changes the port that the development server runs on\n  - VITE_API_HOST: Changes the API that the UI requests data from (default https://api.opendota.com)\n\n## Tech Stack\n\n- View: React\n- State Management: Redux\n- CSS: styled-components\n\n## Workflow\n\n- If you're interested in contributing regularly, let us know and we'll add you to the organization.\n- The `master` branch is automatically deployed to the stage environment.\n- We'll periodically ship releases to production: https://www.opendota.com\n\n## Notes\n\n- You don't have to set up the entire stack (databases, etc.), or worry about getting starter data, since the UI points to the production API.\n- Use the configuration to point to your own API (if you are working on a new feature and want to start building the UI before it's deployed to production).\n- Discord: https://discord.gg/opendota\n  - Strongly recommended for active developers! We move fast and it's helpful to be up to speed with everything that's happening.\n\n## Resources\n\n- New to React/Redux? Read these articles on React and watch video tutorials by Redux creator Dan Abramov.\n  - Thinking in React: https://facebook.github.io/react/docs/thinking-in-react.html\n  - Getting started with Redux: https://egghead.io/courses/getting-started-with-redux\n  - Idiomatic Redux: https://egghead.io/courses/building-react-applications-with-idiomatic-redux\n  - ES6 guide: https://github.com/lukehoban/es6features\n\n## Testing\n\n\u003cimg src=\"/.github/browserstack_logo.png?raw=true\" width=\"350\" align=\"left\"\u003e\n\n[BrowserStack](https://www.browserstack.com/start) have been kind enough to provide us with a free account for Live and Automate. We will be using Automate in the future to run automatic end-to-end testing.\n\nBrowserStack is a cloud-based cross-browser testing tool that enables developers to test their websites across various browsers on different operating systems and mobile devices, without requiring users to install virtual machines, devices or emulators.\n","funding_links":[],"categories":["TypeScript","JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodota%2Fweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fodota%2Fweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodota%2Fweb/lists"}