How samfarah/ratingcalculator works
RatingCalculator is a World of Warcraft Mythic+ planner: users provide a character and target rating, and it calculates dungeon-run options and minimum key levels to reach that rating. The web controller and Discord bot are separate entry points into the same rating service. That service combines Raider.IO character and season data with Blizzard expansion and realm data, using an in-memory cache for selected lookups. The graph follows the sampled controller, service, and provider calls; unsampled view and calculation details are not expanded.
Main entry points: RcService.cs Rating planner · DiscordBotService.cs Discord bot · HomeController.cs Planner controller · ApiHelper.cs HTTP API helper
Components 15
User entry points
- Planner controller
RatingCalculator/MythicPlanner/Controllers/HomeController.cs - Discord bot
RatingCalculator/MythicPlanner/BackgroundServices/DiscordBotService.cs - Planner view models
RatingCalculator/MythicPlanner/Models/WowCharacterViewModel.cs
Rating planning
- Rating planner
RatingCalculator/RcLibrary/Servcies/RatingCalculatorServices/RcService.cs - Character results
RatingCalculator/RcLibrary/Models/ProcessedCharacter.cs
Game data providers
- Raider.IO provider
RatingCalculator/RcLibrary/Servcies/RaiderIoServices/RaiderIoService.cs - Blizzard provider
RatingCalculator/RcLibrary/Servcies/BlizzardServices/BlizzardService.cs
Shared infrastructure
- HTTP API helper
RatingCalculator/RcLibrary/Helpers/ApiHelper.cs - Cache service
RatingCalculator/RcLibrary/Servcies/MemoryCacheServices/MemoryCacheService.cs - In-memory cache
Other components
- Web user
- Discord user
- Discord
- Raider.IO API
- Blizzard API
Connections 19
- Web user → Planner controller: submits search
- Planner controller → Rating planner: requests plan
- Rating planner → Planner controller: returns result
- Planner controller → Planner view models: maps result
- Discord user → Discord: invokes /plan
- Discord → Discord bot: dispatches command
- Discord bot → Rating planner: requests plan
- Rating planner → Discord bot: returns result
- Discord bot → Planner view models: maps result
- Discord bot → Discord: sends response
- Rating planner → Raider.IO provider: fetches character and season data
- Rating planner → Blizzard provider: fetches expansion and realm data
- Rating planner → Cache service: gets cached lookups
- Blizzard provider → Cache service: gets token cache
- Raider.IO provider → HTTP API helper: requests API data
- Blizzard provider → HTTP API helper: requests API data
- HTTP API helper → Raider.IO API: sends requests
- HTTP API helper → Blizzard API: sends requests
- Cache service → In-memory cache: reads and writes