thalkz / mkranking

Web-application to track Elo ranking for Mario Kart

Home Page:https://mkranking.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kart - who's the best Mario Kart player ?

Kart is a simple web-app to record Mario Kart races and attribute an elo score to all participants. This project is simply a small side-project to have fun & learn new things, but also to put an end to the discussions of who the best player actually is.

How it works

  • Users create a character with a name, a Mario Kart avatar, and a starting [elo score of 1000
  • Races results are entered in a few clics (only the real players are taken into account, bots are ignored)
  • After each race, players will earn or loose elo points, based on their result in the race
  • The ranking is updated after each race. More elo points = better ranking.

Ranking & score

Kart uses the Elo rating system in order to compute scores. Elo is used in many competitive sports, like in chess and tennis. The basic principle of the Elo ranking system is that winning against a player with a bigger score earns more points than beating a player with less score. The system aims to make an accurate estimation of the skills of each players, based on match history.

Elo usually only works for two player games (1 vs 1), but this article show how to generalize this system for multiplayer games, with an arbitrary number of participants for each match.

Project stack

  • The webserver is written in Go, and uses pico.css for styling
  • The databse is PostgreSQL

The whole project can be deployed using docker-compose. The docker-compose config also starts a Posgresql database, using the official Postgres image.

How to use

  • Clone the project
  • Create a .env file at the root of the project based on the .env-example file, with your configs
  • Deploy using docker-compose up --build

License

MIT

About

Web-application to track Elo ranking for Mario Kart

https://mkranking.com

License:MIT License


Languages

Language:Go 76.2%Language:HTML 17.8%Language:JavaScript 4.1%Language:Shell 1.3%Language:Dockerfile 0.6%