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

56 lines
1.9 KiB
Markdown

# 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:
```bash
# 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:
```bash
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:
```bash
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.