Somewhat Generic player matching service built with Phoenix, utilizing GenServers and sockets to avoid having an underlying database.
The application is structered as an umbrella consisting of 4 apps.
- riot_api for integration with Riot's API
- fortnite_api for integration with Fortnite's unofficial API
- buddy_matching for in-memory storage of connected players and matching logic
- buddy_matching_web main phoenix app from which the matching and API is exposed
Currently built only to support matching players from League of Legends, but can ideally be easily extended to support multiple games.
To start the server:
- Install dependencies with
mix deps.get
- Start Phoenix endpoint with
mix phx.server
Now you can visit localhost:4000 from your browser.
To test interactively in IEx:
- Install depedencies with
mix.deps.get
- Start IEx with
iex -S mix phx.server
To test interactively with Riot's API in IEx, create a local dev.secret.exs from the template, and fill in your 24h API key generated at https://developer.riotgames.com/.
mix test
Features should be implemented on feature branches based on [development] and rebased thereinto with Pull Requests.
New features should not add any issues to mix credo
and should be formatted using mix format
.
Releases should be merged from [development] into [master], whereafter [master] is rebased into [development].
Development:
Branch 'development' is automatically deployed to Heroku at: https://lolbuddy.herokuapp.com/api/
Examples:
- https://lolbuddy.herokuapp.com/api/summoner/euw/Froggen
- https://lolbuddy.herokuapp.com/api/fortnite/pc/Ninja
Master:
Branch Master is manually deployed to DO at https://api.buddy.gg/api/
Examples:
Deployment is handled with edeliver, distillery and conform. See the respective repos for more information.