Files
buildpath/README.md
Valentin Haudiquet 7051ace13f
All checks were successful
pipeline / lint-and-format (push) Successful in 4m20s
pipeline / build-and-push-images (push) Successful in 1m20s
refactor: remove patch_detector and use gameVersion field in match_collector
2026-04-30 10:37:42 +02:00

1.9 KiB

BuildPath

a tool for League of Legends champions runes and build paths

https://buildpath.win

Architecture

BuildPath is made of three components:

  • a MongoDB document database
  • match_collector, a daemon which runs periodically to collect matches from League of Legends challenger players, automatically organizing them by patch version (extracted from match data), and generating statistics
  • frontend, which is a Nuxt.JS project hosting an API serving the statistics but also the full web frontend (Vue.JS)

Development

Getting started

Developing BuildPath requires Docker for a local MongoDB instance, and a NodeJS/npm installation. Then, for the first-time setup:

# Install npm and node
sudo apt install npm nodejs node-typescript   # Ubuntu/Debian
sudo pacman -S npm nodejs typescript          # Arch
sudo dnf install nodejs typescript            # Fedora

# Install docker. Follow instructions on
# https://docs.docker.com/engine/install/
# .. and don't forget docker compose

cd dev && npm i && cd ..             # Install dependencies for the dev environment
cd frontend && npm i && cd ..        # Install dependencies for frontend
cd match_collector && npm i && cd .. # Install dependencies for match_collector

BuildPath needs data to work, either for generating statistics in the match_collector or for the frontend.

In order to download a production snapshot with data, import them into a local MongoDB instance and re-generate champion statistics, just use:

node dev/scripts/setup-db.js

You can re-run the script to re-generate statistics, and it won't re-download data.

Afterwards, if you want to run the frontend:

cd frontend && npm run dev

Code quality

Every subproject has lint and format targets:

npm run format # Format code
npm run lint   # Run the linter

Please make sure those are run without errors before committing.