How iamkrish-0708/codeclash works
CodeClash is a 1v1 competitive coding arena. A player authenticates, creates or joins a room, starts a timed match, runs sample tests or submits Java code for full grading, and match results update Elo standings. The map separates HTTP entry points, gameplay services, and persistence. README capabilities such as the browser editor, challenge catalog, Google sign-in, and leaderboard are represented where the tree supports them; wiring for unsampled controllers and services is not inferred.
Main entry points: api.js REST client · repository JPA repositories · SubmissionService.java Submission grading · MatchService.java Match lifecycle
Components 21
Browser client
- REST client
src/main/resources/static/js/api.js
HTTP API
- Authentication API
src/main/java/com/codeclash/controller/AuthController.java - Room API
src/main/java/com/codeclash/controller/RoomController.java - Match API
src/main/java/com/codeclash/controller/MatchController.java - Submission API
src/main/java/com/codeclash/controller/SubmissionController.java - Challenge API
src/main/java/com/codeclash/controller/ProblemController.java - Leaderboard API
src/main/java/com/codeclash/controller/LeaderboardController.java - Profile API
src/main/java/com/codeclash/controller/UserController.java
Gameplay services
- Authentication
src/main/java/com/codeclash/service/AuthService.java - Room management
src/main/java/com/codeclash/service/RoomService.java - Match lifecycle
src/main/java/com/codeclash/service/MatchService.java - Submission grading
src/main/java/com/codeclash/service/SubmissionService.java - Challenge catalog
src/main/java/com/codeclash/service/ProblemService.java - Execution interface
src/main/java/com/codeclash/service/CodeExecutionService.java - Java runner
src/main/java/com/codeclash/service/LocalJavaExecutionService.java - Elo ratings
src/main/java/com/codeclash/service/EloService.java
Persistence
- JPA repositories
src/main/java/com/codeclash/repository - Application database
Other components
- Duelist
- Google Identity
- Java compiler/runtime
Connections 25
- Duelist → REST client: uses
- REST client → Authentication API: requests
- REST client → Room API: requests
- REST client → Match API: requests
- REST client → Submission API: requests
- REST client → Challenge API: requests
- REST client → Leaderboard API: requests
- REST client → Profile API: requests
- Authentication API → Authentication: calls
- Room API → Room management: calls
- Match API → Match lifecycle: calls
- Submission API → Submission grading: calls
- Submission grading → Execution interface: executes code
- Execution interface → Java runner: delegates
- Java runner → Java compiler/runtime: compiles and runs
- Submission grading → Match lifecycle: records result
- Match lifecycle → Elo ratings: calculates ratings
- Authentication → Google Identity: verifies token
- Authentication → JPA repositories: reads/writes users
- Room management → JPA repositories: reads/writes rooms and users
- Room management → JPA repositories: looks up matches
- Match lifecycle → JPA repositories: reads/writes match data
- Submission grading → JPA repositories: loads tests; saves submission
- Challenge catalog → JPA repositories: loads challenges and tests
- JPA repositories → Application database: persists entities