58 lines
2.0 KiB
Markdown
58 lines
2.0 KiB
Markdown
# BuildPath
|
|
a tool for League of Legends champions runes and build paths
|
|
|
|
https://buildpath.win
|
|
|
|
## Architecture
|
|
|
|
BuildPath is made of four components:
|
|
- a MongoDB document database
|
|
- `patch_detector`, a daemon which runs periodically to detect new League of Legends patch from official APIs
|
|
- `match_collector`, a daemon which runs periodically to collect matches from League of Legends challenger players on current patch, and generate statistics from those matches, saving them in the database
|
|
- `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 # Ubuntu
|
|
sudo pacman -S npm nodejs # Arch
|
|
sudo dnf install nodejs # 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
|
|
cd patch_detector && npm i && cd .. # Install dependencies for patch_detector
|
|
```
|
|
|
|
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. |