- Project page
- python, flask, mysql
Azelf is a website that shows statistics from the online game Pokémon Showdown. The site is updated once per month as new data is available.
Azelf is a project related to the game Pokémon Showdown. It is an online Pokémon battle simulator that requires planning and strategy to win. It is quite popular : Tens of millions of games (~5 min/game) are played each month. But I just play ten or twenty of these. Still, that traffic creates a lot of log data, some of which are publicly available on the official website.
However, these are only text files; their total size at the end of 2016 was about 40 Go, and grows each month. That makes these statistics really hard to explore and consume.
I play Showdown sometimes, and I was interested in how I could improve based on performances of other players. I decided to build a website to show these statistics in a more useable and attractive way. The goal was to keep my pages up to date with the official data source each month when new data is available.
The backend is made in Python using the Flask framework. This project uses a MySQL database maintained by Uxie, one of my other projects. Uxie pulls the new data once per month and keeps the database up to date.
The frontend uses mostly Bootstrap 4 alpha.
To my surprise, there was a surprisingly low amount of projects using Showdown’s available data, and some were outdated. One cause might be that all the data must be parsed in order to be used in an application. So I wanted to build a library that did just that, and stored all in a database, which is way more easily usable in a project.
Uxie is the name of the open-source library I built to recursively discover, download and parse all the files from the data source. It is also written in Python, and it was my original idea before doing Azelf. It comes with multiple options to filter what should be parsed and populate the final database.
The site is live at azelf.info. The home page displays a summary of the current months’ most played formats, and most played Pokémon. There’s also a list of every format that links to a page listing every Pokémon in that format. Clicking on a name brings then to a page showing detailed stats about that specific species.