Inspiration
I have been a video game player since childhood but have faced little difficulty in playing. During my studies, I became a fan of playing real-time strategy games. I am continuing this passion to contribute to the gaming industry by harnessing the full potential of Grid esports.
As a passionate Grid esports fan, I love the idea of showing game stats on dashboards. The dashboards need to have a backend to retrieve data. The majority of developers use MySQL as data store and are comfortable with SQL query language. This project is based on the idea of converting JSON to relations in novel ways. The custom dashboards are beautiful to have but require implementation effort. So, another dimension is to use BI tools with minimum effort to create dashboards and make them available to everyone.
What it does
JSON is commonly used in API development. JSON is a kind of simplified form as compared with XML but has complexities like arrays within an array. If we further simplify JSON, then we can transform JSON to relations easily and avoid complexities. This area of transformation is interesting. The transformations can be done in multiple ways.
This project presents two novel ways of transforming Grid esports in-game data with the potential of presenting by integration with live environment.
The first transformation is about iterating through JSON, picking an object, picking an array that is a member of the object, and transforming into a denormalized relation. The denormalization process repeats the object members at every index of the array to create rows to be inserted into the table. This transformation is useful in cases where JSON is drafted in a kind of master/detail relationship.
The second transformation is about iterating through JSON, picking every node and transforming into single denormalized relation. The denormalization process transforms to a dictionary, where value against each key is a string. This dictionary can be saved in db as a single row with keys as column names or can be saved in Redis as a key/value.
How we built it
The transformations are implemented in Python to be executed as a script. The first transformation outputs multiple sql script files. A batch file iterates over multiple sql script files and dumps to local MySQL db.
Challenges we ran into
A challenge in the second transformation occurred in the form of out-of-memory. The resolution is a work in progress!
Accomplishments that we're proud of
The first transformation is a recursive algorithm that needs an abstract mindset and attention to detail. The second transformation is more compact. The unit tests are another good thing to write.
What we learned
JSON can be transformed into relations in many ways
What's next for Grid For Every
Grid esports data to be transformed in more efficient and novel ways to excite everyone. This is a step forward towards real-time in-game stats available for everyone

Log in or sign up for Devpost to join the conversation.