babiri.net is a Pokémon stats aggregation and visualization website for competitive VGC and OU players.
The website has had over 100,000 users since launch. It has also been featured on Pokésports Podcast. For future updates, please follow @NotCelsiusDeg on Twitter.
The live demo can be found here.
babiri.net was made to gain insight on daily Pokémon Showdown usage for VGC and OU formats using public replays from the server. The application also provides the percentage of teams that specific Pokémon are featured on, as well as their usage over time through data visualization.
This repository hosts the open-source version of the web application portion. It is a snapshot of the website prior to the OU format addition. As such, security details such as DB connection strings are omitted.
To run the server, use npm run dev
in your terminal.
Upon starting, the client-side will be hosted on localhost:3000
and the server-side will be hosted on localhost:5000
. You can check the ports by looking at the logs.
Please ensure you have Node.js installed, which can be downloaded here. In addition, the repository does not contain the database connection string for security reasons. To construct your own database, please refer to the models found in /models
.
All requests are made using the GET
method. Both VGC and OU formats follow the same endpoint structure.
VGC uses the /api/teams
and /api/usage
endpoints while OU uses /api/teamsou
and /api/usageou
endpoints.
/api/teams
: Return the most recent recorded teams.
/api/teams?pokemon=[POKEMON]
: Return the most recent recorded teams with POKEMON
on their roster.
Ex. /api/teams?pokemon=Tyranitar
returns the most recent recorded teams with Tyranitar.
/api/teams?date=[DATE]
: Return the teams recorded at the requested DATE
. DATE
should be represented by YYYY-MM-DD
.
Ex. /api/teams?date=2020-07-13
returns the teams recorded on July 13th, 2020.
You can combine previous parameters to search by both Pokémon and date.
Ex. /api/teams?pokemon=Togekiss?date=2020-07-06
returns the teams with Togekiss recorded on July 6th, 2020.
/api/usage?pokemon=[POKEMON]
: Return all usage stats of the requested POKEMON
starting with the oldest recorded.
Ex. /api/usage?pokemon=Excadrill
returns the usage stats of Excadrill.
Web Application
- React (Bootstrap/Chart.js)
- Node
- MongoDB
- Express
- Heroku
Data Scraping
- Python (Requests, BeautifulSoup, PyMongo)
- AWS EC2 (cron)
Sprites
This project is licensed under the terms of the MIT license.