This document represents a high-level overview of changes made to this project. It will not list every miniscule change, but will allow you to view - at a glance - what to expact from upgrading to a new version.
- Install
pry
in all environments. Allows for much more comfortable usage of an interactive shell in prod than with plainirb
. Also prevents having to installirb
, which was moved into a gem in ruby2.6.x
.
- Update ruby to
2.6.1
.
-
Caching of player statistics. This adds the ability to pre-calculate and store per-player statistics like KDR and accuracy. When queried, the API will then serve the most recent statistics, rather than calculating it on the fly.
To accomodate multiple use-cases, various statistic classes can be defined, which influence the sample size to use for calculation of these statistics.
- Ensure data source updates are scheduled for the future, even if they were not processed in a long time. This fixes cases where a data source - if it has not been processed for a long time - is scheduled according to its assigned update frequency, leading to a timestamp in the past, making it execute multiple times in succession.
- Allow importing rounds where one or both starting locations are undefined or ill-defined. Will be stored as 'unknown' starting location.
- Wrong sentry.io project in Makefile.
- Importer: Store round lengths.
- Importer: Store map names.
- Importer: Store marine and alien starting locations.
- Importer: Store time spent per player for each class (lifeform, weapon, ...)
- Integration of sentry.io for excecption tracking.
- Update ruby to
2.5.1
, update dependencies.
- Attempt to create
DataImport::STORAGE_PATH
if it doesn't exist yet.
- Exceptions when calculating various player statistics, caused by dividing by zero:
Player#kdr
,Player#marine_kdr
,Player#alien_kdr
: Zero deathsPlayer#accuracy
,Player#marine_accuracy
,Player#alien_accuracy
: Zero hits and missesPlayer#marine_accuracy(include_onos: false)
: Exclusively onos hits, and no missesPlayer#statistics
: All of the above.
-
Ingestion of NS2+-based Wonitor statistics
- Per-player accuracy, KDR, ...
-
HTTP-based API
- Optional authentication
-
Automatic downloads of NS2+ / Wonitor databases via HTTP