A Discord bot that tracks League of Legends players' ranked LP (League Points) and statistics.
- 📊 Track multiple players' LP and rank changes
- 🏆 Support for all major regions (EUW, NA, KR, etc.)
- 💾 MongoDB database for persistent storage
- 🤖 Discord slash commands interface
- 🔄 Real-time rank updates
Add a player to tracking
/add_player <name> <tagline> <server>Show all tracked players
/list_players- Go 1.19+
- MongoDB (local or cloud)
- Discord Application/Bot
- Riot Games API Key
Create a .env file at the root of the project with the following structure (replace with your own values) :
MONGO_ROOT_USERNAME: <admin_username>
MONGO_ROOT_PASSWORD: <admin_password>
MONGO_DATABASE: <database_name>
RIOT_API_KEY: <Riot_API_Key>
DISCORD_TOKEN: <Discord_API_Key>go mod init lp_tracker
go mod tidydocker-compose up -dgo run cmd/commands_listener/main.gogo run cmd/poller/main.golp_tracker/
├── cmd/
│ ├── commands_listener/ # command_listener entry point
│ ├── poller/ # poller entry point
├── container/ # Dependency injection
├── database/ # MongoDB connection and management
├── discord/ # Discord bot commands and handlers
├── models/ # Data models (models/repositories design pattern)
├── repositories/ # Repositories
├── services/ # Services for Riot API
├── docker-compose.yml # Docker compose to run mongodb, poller and command_listener services
├── Dockerfile # Docker Images for poller and command_listener\
# run go script
go run main.go
# Compile (create an executable)
go build
# Compil with a specific name
go build -o mon-app
# Instal the binary in $GOPATH/bin
go install# run all tests
go test ./...
# run test with verbosity
go test -v ./...
# format
go fmt ./...
# Analys code to detect problems
go vet ./...# Add dependency
go get package-name
# Add specific version
go get package-name@v1.2.3
# Update dependency
go get -u package-name
# List all modules used
go list -m all# run docker-compose script in detached mode
docker-compose up -d
# Rebuild images before starting containers
docker-compose up --build
# Stop services
docker-compose down
# Stop containers and delete volumes
docker-compose down -v
# Show containers logs
docker-compose logs
# Show logs of a specific container
docker-compose logs nom-du-service