The app is accessible on warzone1-kd.streamlit.app.
Update : As of Nov 2022, Activision is transitioning to Warzone 2 and discontinued Warzone 1 API.The app is still functional but now works exclusively "offline", from previously saved API responses, with a default --fixed, username/platform.
wzkd
is a Streamlit app that collect, aggregate and visualize players' stats from Call Of Duty API (Warzone 1).
The app is live (no database), but optimized with (partially) asynchronous calls and custom caching methods.
It is the main facade which relies on two other personal projects to run :
- wzlight (also on pypi) : a light, asynchronous python wrapper for 'Callof' API (Warzone 1).
- match2kd : a XGBoost model aiming at predicting game difficulty ("lobby kd") from a match's features only, potentially saving thousands -- otherwise mandatory, API calls to players' profiles and matchs.
-
Use/showcase quite a lot of Streamlit features, ecosystem : layout options, tables vs. Ag Grid vs. Plotly, examples of customized visualizations (
rendering.py
)
-
Modules and main app (
Home.py
) are annotated so (let's hope) you can figure what / how the whole thing is running -
Overcome some "limitations" of Streamlit, especially when working on a live project + in an async environment : async code, caching & backoff policy using external libraries.
-
No database (feature or not ^_^)), data is collected live from recent game history and a cache system prevents spamming COD API / being limited.
-
Data (COD API) processing and stats aggregations using Pandas. Data collection is build on top of our other project "wzlight", an async wrapper for COD API.
-
Warzone/CallofDuty behind-the-scene : some documentation/notebooks/bookmarks, weapons/game modes labels and parsers; also take a look on ressources listed on wzlight.