What it does:
Analyzing and Ranking eSports Teams with AWS Services
Introduction:
The aim of this project is to create a robust system for analyzing and ranking eSports teams from various regions using AWS services. The project leverages AWS S3 for data storage, DynamoDB for efficient data management, Lambda for serverless computing, and AWS API Gateway for providing user-friendly API endpoints.
Objective:
The primary objective of this project is to process game data stored in AWS S3 buckets, perform region-specific team stat analyses, and then import the results into DynamoDB for easy access and retrieval. Subsequently, the system will expose a series of API endpoints via AWS API Gateway to enable users to retrieve global team rankings.
Technologies Used:
AWS S3: Used as the data storage solution for housing the game data. DynamoDB: Employed for efficient and scalable data management, storing processed team statistics and rankings. Lambda: Utilized for serverless computing, allowing for on-demand data processing without the need for managing servers. AWS API Gateway: Acts as a front-end service to provide user-friendly API endpoints for accessing team rankings. Python (Boto3 SDK): The primary programming language for scripting AWS services, facilitating data processing and integration.
Workflow:
Data Ingestion:
Game data is retrieved from various sources and stored in AWS S3 buckets. Regular automated processes or manual uploads ensure a continuous inflow of new data.
Data Processing:
Lambda functions are triggered to process the raw game data. This includes parsing, aggregating, and calculating team statistics for different regions. The processed data is then prepared for insertion into DynamoDB.
DynamoDB Integration:
The processed team statistics, along with relevant metadata, are imported into DynamoDB tables. DynamoDB is chosen for its scalability, flexibility, and seamless integration with Lambda.
API Gateway Setup:
API Gateway is configured to provide a series of user-friendly endpoints for retrieving team rankings. These endpoints are designed to accept parameters such as region, time frame, and other filters for customized queries.
Lambda for API Handling:
Lambda functions are deployed to interact with DynamoDB tables based on API requests. They retrieve relevant data based on user queries and return the results in a structured format. Security and Authentication:
Depending on the project requirements, security measures such as API keys, AWS Identity and Access Management (IAM) roles, and other authentication mechanisms are implemented.
Conclusion:
This project demonstrates the seamless integration of AWS services to create an end-to-end system for analyzing and ranking eSports teams. By leveraging the power of serverless computing, scalable data storage, and user-friendly APIs, this system provides an efficient solution for eSports enthusiasts to access and explore global team rankings across different regions.
Future Enhancements:
Via machine learning, manipulate public solo que rank data to evaluate the meta of the game. This could introduce more metrics based on the team's adaptability of the meta's champion. Change the infrastructure of how the data analysis is done, probably need to follow some data mining principle. Incorporating caching mechanisms to improve API response times. Implementing real-time data updates for near-instantaneous rankings. Using some sort of scheduler to periodically import the data instead of manually running it. Adding user authentication for personalized experiences. Enhancing data visualization capabilities for a more engaging user interface.
Challenges we ran into
The size of the data is huge. The data import (to db) process. the data analysis process, failed many times due to unexpected error in the game files (game json couldn't be downloaded, etc). Had to learn how to use api gateway, lambda function, and dynamodb, and IAM role.
Accomplishments that we're proud of
We started it with less than 10 days before the deadline of hackathon. We are very proud of ourselves. First time doing data analysis. First time in a hackathon related to gaming.
What we learned
Learnt how to use api gateway, lambda function, and dynamodb, and IAM role. Some intermediate results can be deserialize into text file to prevent runtime error leading all the processed data gone.
Built With
- amazon-cloudwatch
- amazon-dynamodb
- api-gateway
- lambda
- python
- s3
Log in or sign up for Devpost to join the conversation.