Giter VIP home page Giter VIP logo

aram-pro's Introduction

Aram-Pro

Aram Pro is a website centered around providing metagame data for the All-Random All-Mid (ARAM) gamemode on League of Legends. The basic premise of this app is to provide a central hub for fans of the ARAM game mode to come and share information and use the tools provided to improve their gameplay.

Right now, the site is in early development phases and is primarily an excersise in consuming and utiling the Riot Games API. once the main features are fleshed out, there will be a public release in hopes of generating some substantial user data to help bolster the accuracy and popularity of the website.

This is a Rails app with the front-end being built on Foundation and React. If you would like to contribute, send an email to Kevin (Rhoxio) to get a copy of the required secret development files. Currently, some key functionality still needs to be built. Once you get access, check out the issues and start building!

Currently Working On

Setting Up Analytics and Suggestions for Champion Matchups (ARAM Buster Backend Dependencies)

There are some clear-cut goals that will need to be accomlished before ARAM Buster (working title) is fully ready to start accepting requests for simple match analytics. The goal of the feature is to provide users with a utility that helps them make better decisions baed upon their matchup. General weaknesses, like sustain being strong against poke teams but weak against initiation, will be taken in to account.

I Don't Have Reliable and Robust Analytics Data (Yet), So...

In order to get initial values that are somewhat accurate, (as I have no meaningful data at the moment outside of wgat will be scraped) I am going to scrape a few different websites and run analytics against them to give the Championbase model more robust data on itself to work with. (Done)

Match Averages and Other Analytics

I have an attribute set up on the Match model that shows the averages (at the time the match was created and saved) that takes the averages on each champion present in the game's winrates and overall scores and saves it to the Match. This is going to be present on the front-end itself. This also makes it easier for me to run match analytics and give an average spread for similar games (once that gets implemented). (Done)

Next Up: Item Suggestions

I have a system that scrapes in order to acquire items that are most popularly built, but I need to set up a system that reads tags (or highest offensive/defensive) stat averages and suggests alternative build paths depending on how the game begins to unfold.

For post-game analytics, this will mean very little aside from checking if the suggestions were built and how they potentially affected outcomes.

Aram Buster is focused around giving you a realistic view of your chances to win against the other team and increase your chances of winning by providing you with item and "optimal" playstyle information. This is all currently based on tags and I have a utility that calculates tag frequency within a game already built, but it needs to be present on the match model itself. (Semantically, this will keep my controllers and services thin so all I have to do is serve data straight up to the front. Plus, why wouldn't I want to save this on the database for future use?)

Persisting the Analytics

I am planning on caching a lot of the data itself on Redis and doing perodic dumps to Postgresql on the same database as everything else is living using Sidekiq.

Analyzing Initial State of the Game

aram-pro's People

Contributors

rhoxio avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aram-pro's Issues

Grab Recent Games from New Users

Need to set up an action to save the most recent ARAM game from a new user.

If no ARAM game in recent games, prompt them to play one. May need to add a session flag or check length of matches associated with them.

Dashboard v1

Need a simple dashboard that displays all champions in the current game including a photo, the summoner playing them, the champion name, and the champion's weight.

Need Tests Written

Need basic tests written to make sure associations and validations are working as intended.

Associate Matches with User

This needs to be in before issue #2.

Should also check if other users with summoners Ids in the same game are present, and if so, associate the match with them as well.

Dashboard Access

Need to set up logic in the controller to misdirect to login if user is not signed in.

Set Up Mastery-Based Categorization

Depending on wether a champion has gone more in ferocity, cunning, or resolve, give a tag to that champion before serving to the front-end.

Label Champions with Secondary Tags

Need to scope this out, but what essentially need to be done is champs need to be categorized and given tags like: "strong_cc", "self_healing", "high_burst", "very_tanky", "physical_damage", "high_poke", "strong_late" etc.

These tags are going to the be the basis for itemization and team ranking. These will probably be broken down in to relevant categories like: powerspike windows, team synergy, playability, and skill cap.

(Ideally, these should be hashed on the database using :serialize on the model and a string datatype. Postgres and ActiveRecord handles the parsing with these tags present. No need for a full association here if we set up a static model. )

Assign Static Weight to Specific Champs

All of the champions need to have initial win percentages (weight) assigned to them on the seeds file. The best resource I have found to do so is: Here. The win percentage can be seen by hovering over a champion's icon.

The if statement in the seed file can be replaced with the new calculated weights depending on which champion is being created at the moment.

Recent Games need to Populate

Need to set up an action when someone logs in that polls Riots API and checks their recent matches to find ARAM games.

Once these games have been found and have been established as being ARAM gametype, make calls to the Riot API to get relevant game data so their dashboard doesn't just end up being blank initially.

If no games are found and they are not currently in a game, show a message prompting them to either play a game of ARAM and click the 'Update' button or play a game and click the 'Get Current Game' button.

Set up Seeds for Runes

I am not sure if it would be easier to just build a parser that can help map values on runes to champions in matches, but it may be worth it to keep it on the database.

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.