Skip to content
forked from odota/core

Open source Dota 2 replay parsing and statistics

License

Notifications You must be signed in to change notification settings

RyanDubowsky/yasp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YASP (Yet Another Stats Page)

Build Status Code Climate Coverage Status Dependency Status devDependency Status Discord

Overview

  • This project aims to provide free, open source, highly detailed match and player statistics for the Dota 2 community.
  • Data comes from the WebAPI provided by Valve and fully automated parsing of match replays (.dem files).
  • See here for an example of our match analysis (this match may not have the latest features as we're constantly adding new things).

Tech Stack

  • Web/Microservices: Node.js
  • Storage: PostgreSQL/Redis
  • Parser: Java (powered by clarity)

Quickstart

  • We recommend Cloud 9 IDE for fast and easy setup and development, although you are free to develop on your own setup if you want.
  • Create an account on Cloud 9: https://c9.io/dashboard.html
  • Start a new workspace and choose the source GitHub repository as yasp-dota/yasp, or your own fork of it if you're planning to make changes and submit a pull request.
  • Open the workspace
  • Install dependencies: sudo bash scripts/init.sh. The script is designed for Ubuntu 14.04 LTS. For other platforms, please have a look at the wiki.
  • Create .env file with required config values in KEY=VALUE format (see config.js for a full listing of options) cp .env_example .env
    • The retriever requires a Steam account in order to fetch replay salts. We recommend creating a new account for this purpose (you won't be able to log into the account while the retriever is using it). If you don't care about getting replay salts/downloading replays then you can skip this step.
  • Set up the database sudo npm run create
  • Build npm run build
  • Run the application with one of the following: (this will run under nodemon so file changes automatically restart the server):
    • npm run dev Run one instance of each service.
    • npm run dev web Runs just the web server. Useful for developing just the frontend CSS/JS.
    • npm run dev web,parser,requests,retriever The minimal setup for being able to open the site in a browser and request parses by ID (which is a useful end-to-end test).
  • Other useful commands
    • npm run watch: If you want to make changes to client side JS, you will want to run the watch script in a separate window in order to automatically rebuild after making changes.
    • npm test runs the full test suite. Use mocha for more fine-grained control over the tests you want to run.
    • npm run task updateconstants pulls latest constants data and saves to json directory.
    • npm run task fullhistory queues a full history request for all players in DB who don't have it yet.
    • npm run update updates all deps in package.json to latest versions.
  • Get some starter data
    • You can request some parses by ID to get some parsed data.
    • You can also log in through Steam on your own instance to trigger a full history request for that user (requires fullhistory service to be running)
  • Make some changes and commit them: git add --all; git commit -m "My first commit!"
  • Submit a pull request. Wait for it to be reviewed and merged.
  • Congratulations! You're a contributor.

Architecture and Design

See the wiki.

History

About

Open source Dota 2 replay parsing and statistics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 68.1%
  • HTML 23.5%
  • Java 3.3%
  • Shell 3.1%
  • CSS 2.0%