Coder Social home page Coder Social logo

parkkeo1 / cs-py Goto Github PK

View Code? Open in Web Editor NEW
14.0 3.0 2.0 32.77 MB

:video_game: [WIP v2] A performance analytics tool for CS:GO that analyzes players' data to provide deep insights into their skill, featuring a Flask client and RESTful API server.

License: MIT License

Python 88.59% HTML 8.48% CSS 2.93%
counter-strike player-statistics counter-strike-global-offensive valve game-state-integration csgo stat-tracking flask restful-api

cs-py's Introduction

CS-Py (WIP v2)

A performance analytics tool for CS:GO that analyzes players' data to provide deep insights into their skill through detailed metrics such as consistency, accuracy, and impact per game (ex. HLTV Rating, KAS %, HSR). Features a Python-Flask & SQL local client and remote RESTful API server. By Isaac Park, CS Major @ UIUC.

Project Status: v2 is WIP; it will feature a local Flask client and a remote Flask RESTful API Server. I also plan to develop a React.js frontend website to display the match results to the user. The RESTful API server will provide the website with the data.

Why and How

For a game meant for competitive play, Counter-Strike: Global Offensive surprisingly lacks built-in options by which players can analyze their own performance. In standard match-making, the in-game scoreboard only displays simple statistics (kills, assists, deaths, score, and the number of round "MVPs") that, while useful for cursory glances during the game, are inadequate metrics to accurately gauge player skill. Edit: Even after the new Panorama update, certain detailed statistics are missing in the default game.

Existing third-party websites such as csgo-stats.com seem to mostly provide overly general (total kills, total games played, etc) and often outdated data about players. Most of these website services require users to manually download their demo replay files from the CS:GO client and upload them. Along with this inconvenience, demo files are known to often be corrupted. HLTV.org, while very solid in terms of data and analysis, only keeps track of professional players and matches.

Thus, CS-Py's purpose, as an user & web application, is to expand the number of metrics available to normal players and provide more indicative and accurate analyses of their performance in CS:GO.

CS-Py is made possible by CS:GO's developer feature: Game-State Integration. JSON payloads containing real-time game data are rapidly sent (every 1-2 seconds) by the CS:GO client and are processed/analyzed for player performance. The calculated metrics and results are stored in a SQLite database and then sent to the remote REST API. I plan to implement a separate front-end web app, probably with React.js and Express.js, that will use the data from the API to display the analysis results to users.

Project Objectives for v2

  1. Overhaul client Flask user application to be object-oriented, efficient, and cleaner in terms of code design. Improved SQL design.
  2. Implement new Flask RESTful API server and deploy on PythonAnywhere. This server will store match analysis results for all users.
  3. Implement new React.js frontend website that will use the RESTful API to get analysis results and display to the user.

v1.1 Released. Install CS-Py Here For Windows.

  • Note: v1 is the old release; CS-Py is a standalone, local Flask application and not a client-server web app.
  • Current statistical features of CS-Py are explained here.
  • Please report bugs by creating a new issue here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.