Skip to content

odota/web

Repository files navigation

opendota-web

Help Contribute to Open Source

OpenDota Web UI: A web interface for viewing Dota 2 data. This utilizes the OpenDota API, which is also an open source project.

Quickstart

  • Clone the repo using git clone git@github.com:odota/web.git

With Docker

$ docker-compose up
  • Visit port 3000 on your development machine.

Without Docker

Contributing

  • Make some changes.
  • npm run lint to check your code for linting errors.
  • npm test to check all app routes for uncaught JavaScript errors.
  • Submit a pull request. Wait for review and merge.
  • Congratulations! You're a contributor.

Configuration

  • You can set the following environment variables:
    • PORT: Changes the port that the development server runs on
    • VITE_API_HOST: Changes the API that the UI requests data from (default https://api.opendota.com)

Tech Stack

  • View: React
  • State Management: Redux
  • CSS: styled-components

Workflow

  • If you're interested in contributing regularly, let us know and we'll add you to the organization.
  • The master branch is automatically deployed to the stage environment.
  • We'll periodically ship releases to production: https://www.opendota.com

Notes

  • 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.
  • 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).
  • Discord: https://discord.gg/opendota
    • Strongly recommended for active developers! We move fast and it's helpful to be up to speed with everything that's happening.

Resources

Testing

BrowserStack 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.

BrowserStack 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.