How souvikkundu0901/coding-arena works
Codess is a real-time competitive coding platform: players authenticate, enter ranked matchmaking or challenge a friend, solve a shared problem, and receive evaluated results and rating updates. Social features and account preferences support that core loop. The graph combines the supplied service excerpts with README-documented capabilities; unsampled subsystems use only their existing enclosing paths, and their internal wiring is not inferred.
Main entry points: SubmissionService.java Submission evaluation · js Web client · AuthService.java Auth service · ChallengeService.java Friend challenges
Components 27
Player interface
- Web client
src/main/resources/static/js
Identity and social
- Auth API
src/main/java/com/codingarena/auth/controller/AuthController.java - Auth service
src/main/java/com/codingarena/auth/service/AuthService.java - User accounts
src/main/java/com/codingarena/auth/repository/UserRepository.java - CAPTCHA verification
src/main/java/com/codingarena/auth/service/DefaultCaptchaService.java - Friend relations
src/main/java/com/codingarena/friendship/service/FriendshipService.java - Friend records
src/main/java/com/codingarena/friendship/repository/FriendshipRepository.java
Match lifecycle
- Friend challenges
src/main/java/com/codingarena/challenge/service/ChallengeService.java - Challenge records
src/main/java/com/codingarena/challenge/repository/ChallengeRepository.java - Queue API
src/main/java/com/codingarena/matchmaking/controller/MatchmakingController.java - Matchmaking
src/main/java/com/codingarena/matchmaking/service/MatchmakingService.java - Match creation
src/main/java/com/codingarena/match/service/MatchCreationService.java - Match lifecycle
src/main/java/com/codingarena/match/service/MatchService.java - Match records
src/main/java/com/codingarena/match/repository/MatchRepository.java - Disconnect and expiry
src/main/java/com/codingarena/match/service
Code evaluation
- Submission API
src/main/java/com/codingarena/submission/controller/SubmissionController.java - Submission evaluation
src/main/java/com/codingarena/submission/service/SubmissionService.java - Judge0 client
src/main/java/com/codingarena/submission/client/Judge0Client.java - Problem tests
src/main/java/com/codingarena/match/repository/TestCaseRepository.java - Submission records
src/main/java/com/codingarena/submission/repository/SubmissionRepository.java - Elo ratings
src/main/java/com/codingarena/submission/service/EloService.java
Runtime infrastructure
- Redis queue
- Live events
src/main/java/com/codingarena/config/WebSocketConfig.java - PostgreSQL
Other components
- Player
- Google reCAPTCHA
- Judge0 execution
Connections 35
- Player → Web client: uses
- Web client → Auth API: authenticates
- Auth API → Auth service: handles auth
- Auth service → User accounts: reads and writes
- Auth service → CAPTCHA verification: verifies registration
- CAPTCHA verification → Google reCAPTCHA: validates token
- Web client → Friend relations: manages friends
- Friend relations → Friend records: reads and writes
- Web client → Friend challenges: sends challenge
- Friend challenges → Challenge records: reads and writes
- Friend challenges → Match creation: creates match
- Web client → Queue API: joins queue
- Queue API → Matchmaking: manages queue
- Matchmaking → Redis queue: pairs players
- Matchmaking → User accounts: loads players
- Matchmaking → Match creation: creates match
- Match creation → Match records: persists match
- Web client → Match lifecycle: reads or forfeits
- Match lifecycle → Match records: reads and updates
- Match lifecycle → Live events: broadcasts match events
- Disconnect and expiry → Match lifecycle: expires or forfeits
- Web client → Submission API: submits code
- Submission API → Submission evaluation: evaluates submission
- Submission evaluation → Match records: loads match
- Submission evaluation → Problem tests: loads test cases
- Submission evaluation → Judge0 client: executes code
- Judge0 client → Judge0 execution: sends code
- Submission evaluation → Submission records: stores results
- Submission evaluation → Elo ratings: updates ratings
- Submission evaluation → Live events: publishes results
- Match creation → PostgreSQL: stores match data
- Auth service → PostgreSQL: stores account data
- Friend relations → PostgreSQL: stores friendships
- Friend challenges → PostgreSQL: stores challenges
- Submission evaluation → PostgreSQL: stores submissions