How theupperpart/leaguehub-backend works
LeagueHub is a Spring Boot backend for amateur esports tournaments. Players and organizers authenticate, create or join tournament channels, manage participation and rules, and run matches with bracket, readiness, chat, and result features. The central runtime path is channel creation and enrollment into match play; account, notices, email, and image uploads are supporting capabilities. The README documents Riot-result checks and Redis-backed chat, but the relevant implementation was not sampled, so those links are shown as unverified where needed.
Main entry points: MatchService.java Match operations · MemberAuthService.java Login and tokens · ChannelService.java Channel setup and status · MatchQueryService.java Bracket and match queries
Components 23
Identity and access
- Login and tokens
src/main/java/leaguehub/leaguehubbackend/domain/member/service/MemberAuthService.java - Member profiles
src/main/java/leaguehub/leaguehubbackend/domain/member/service/MemberService.java - Member records
src/main/java/leaguehub/leaguehubbackend/domain/member/repository/MemberRepository.java - JWT handling
src/main/java/leaguehub/leaguehubbackend/domain/member/service/JwtService.java - Email verification
src/main/java/leaguehub/leaguehubbackend/domain/email/service/EmailService.java
Tournament setup
- Channel setup and status
src/main/java/leaguehub/leaguehubbackend/domain/channel/service/ChannelService.java - Channel records
src/main/java/leaguehub/leaguehubbackend/domain/channel/entity/Channel.java - Channel rules and info
src/main/java/leaguehub/leaguehubbackend/domain/channel/service/ChannelRuleService.java - Enrollment and roles
src/main/java/leaguehub/leaguehubbackend/domain/participant/service/ParticipantManagementService.java - Participant queries
src/main/java/leaguehub/leaguehubbackend/domain/participant/service/ParticipantQueryService.java - Participant records
src/main/java/leaguehub/leaguehubbackend/domain/participant/entity/Participant.java
Match operations
- Bracket and match queries
src/main/java/leaguehub/leaguehubbackend/domain/match/service/MatchQueryService.java - Match operations
src/main/java/leaguehub/leaguehubbackend/domain/match/service/MatchService.java - Matches and sets
src/main/java/leaguehub/leaguehubbackend/domain/match/entity/Match.java - Match player records
src/main/java/leaguehub/leaguehubbackend/domain/match/entity/MatchPlayer.java - Live match chat
src/main/java/leaguehub/leaguehubbackend/domain/match/service/chat/MatchChatService.java
Community services
- Game and platform notices
src/main/java/leaguehub/leaguehubbackend/domain/notice/service/NoticeService.java
Platform integrations
- Redis tokens and chat
src/main/java/leaguehub/leaguehubbackend/global/redis/service/RedisService.java - Image uploads
src/main/java/leaguehub/leaguehubbackend/global/aws/s3/S3FileUploadService.java
Other components
- Member or organizer
- Kakao identity
- Riot game API
- AWS S3
Connections 27
- Member or organizer → Login and tokens: requests login
- Login and tokens → Kakao identity: requests identity
src/main/java/leaguehub/leaguehubbackend/domain/member/service/MemberAuthService.java - Login and tokens → Member profiles: finds or saves
src/main/java/leaguehub/leaguehubbackend/domain/member/service/MemberAuthService.java - Member profiles → Member records: reads and writes
src/main/java/leaguehub/leaguehubbackend/domain/member/service/MemberService.java - Login and tokens → JWT handling: creates tokens
src/main/java/leaguehub/leaguehubbackend/domain/member/service/MemberAuthService.java - JWT handling → Redis tokens and chat: stores refresh token
src/main/java/leaguehub/leaguehubbackend/domain/member/service/JwtService.java - Member or organizer → Channel setup and status: creates channel
- Channel setup and status → Channel records: creates and updates
src/main/java/leaguehub/leaguehubbackend/domain/channel/service/ChannelService.java - Channel setup and status → Participant records: creates host entry
src/main/java/leaguehub/leaguehubbackend/domain/channel/service/ChannelService.java - Channel setup and status → Match operations: creates submatches
src/main/java/leaguehub/leaguehubbackend/domain/channel/service/ChannelService.java - Member or organizer → Enrollment and roles: joins channel
- Enrollment and roles → Participant records: manages enrollment
src/main/java/leaguehub/leaguehubbackend/domain/participant/service/ParticipantManagementService.java - Member or organizer → Participant queries: views participants
- Participant queries → Participant records: queries
src/main/java/leaguehub/leaguehubbackend/domain/participant/service/ParticipantQueryService.java - Member or organizer → Bracket and match queries: views bracket
- Bracket and match queries → Matches and sets: loads match data
src/main/java/leaguehub/leaguehubbackend/domain/match/service/MatchQueryService.java - Bracket and match queries → Match player records: loads player data
src/main/java/leaguehub/leaguehubbackend/domain/match/service/MatchQueryService.java - Member or organizer → Match operations: manages match
- Match operations → Matches and sets: creates and updates
src/main/java/leaguehub/leaguehubbackend/domain/match/service/MatchService.java - Match operations → Match player records: assigns players
src/main/java/leaguehub/leaguehubbackend/domain/match/service/MatchService.java - Member or organizer → Live match chat: chats in match
- Live match chat → Redis tokens and chat: uses for chat
- Match operations → Riot game API: checks game results
- Member or organizer → Game and platform notices: views notices
- Member or organizer → Email verification: verifies email
- Member or organizer → Image uploads: uploads images
- Image uploads → AWS S3: stores images