/Dota2-Analyzer

An analyzer for professional matches in popular game Dota 2

Primary LanguagePython

Dota2-Analyzer

We said to Kunwar that if he doesn't stop playing Dota, then we will not help him in the project. Kunwar replied back: "I will report you."

But, Kunwar did stop playing Dota. And as a result, we finally have Dota2-Analyzer: a model database and analyzer for professional matches in the popular game Dota 2.

Authors

  1. Kunwar Shaanjeet Singh Grover
  2. Alapan Chaudhuri
  3. Zeeshan Ahmed

How to get started?

Install MySQL or MariaDB in order to be able to utilize our Database Dump. MariaDB is similar to MySQL but is also faster to use and easier to install.

Once you have either of the above installed in your system follow these steps:

  • Enter in mysql
  • Create a database named dota using
     CREATE DATABASE dota CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
     CREATE USER '<user>'@'localhost' IDENTIFIED BY '<password>';
     GRANT ALL PRIVILEGES ON dota.* TO '<user>'@'localhost';
     exit

⚠️ You must use Python 3: Not using python3 might cause unnecessary problems.

  • Create a virtual environment and install dependencies

    python3 -m venv env
    . /env/vin/activate
    pip3 install -r requirements.txt
  • Relocate yourself to core/Python and run the following

    python3 cli.py 
  • Enter "Host", "User" and "Password" with the details of the user (with all permissions) created just after creating the database dota, respectively.

  • Finally, use help to get started.

Tip: use list-tables to show all tables.

Current Functionalities

The following image lists all functionalities in a tree hierarchy.

Basic Functionalities

As seen above, we have all basic functionalities to be used in the form as specified below.

help
exit
list-tables

delete <table_name> 
insert <table_name>
modify <table_name>

For, insert, delete and modify you shall have options once you execute the command as specified above.

Analysis

We have analysis results for 4 associated reports, namely:

  1. hero-report

    analysis hero-report
    

    Projection of all the heroes based on the matches played.

  2. player-report

    analysis player-report
    

    Generating a report of all the players based on the wins.

  3. team-report

    analysis team-report
    

    Performance of all the teams based on history are generated.

  4. tour-report

    analysis tour-report teams
    analysis tour-report heroes
    

    Performace of a team and usage of a hero in tournaments are projected, respectively.

Retrieval

  1. aggregate: Commands for doing aggregate operations on database.

  2. project: Projection commands on database.

  3. search: Commands for doing partial search on database.

  4. select: Selection commands on database.