How rjafallah/blazing-8s works
Blazing 8s is a browser-based multiplayer card game. Players register or log in, create or join a waiting lobby, then start and play a synchronized game; chat and rankings are additional user-facing capabilities. The backend separates REST controllers, domain services, and persistence, with WebSockets for live game and chat updates. The README documents MySQL persistence and reconnect-safe chat. Some endpoint and frontend-service internals were not sampled, so those links reflect documented responsibilities rather than inspected call details.
Main entry points: api.js REST client · repositories JPA repositories · App.jsx App navigation · websocket.js WebSocket client
Components 21
Web client
- App navigation
frontend/src/App.jsx - Login page
frontend/src/pages/LoginPage.jsx - Lobby page
frontend/src/pages/LobbyPage.jsx - Game page
frontend/src/pages/GamePage.jsx - Ranking page
frontend/src/pages/RankingPage.jsx - Chat UI
frontend/src/components/Chat.jsx - REST client
frontend/src/services/api.js - WebSocket client
frontend/src/services/websocket.js
REST backend
- Auth controller
backend/src/main/java/blazing/jeux/controller/AuthController.java - Lobby controller
backend/src/main/java/blazing/jeux/controller/LobbyController.java - Game controller
backend/src/main/java/blazing/jeux/controller/GameController.java - Ranking controller
backend/src/main/java/blazing/jeux/controller/RankingController.java - Authentication
backend/src/main/java/blazing/jeux/service/AuthService.java - Game rules
backend/src/main/java/blazing/jeux/service/GameService.java - Deck operations
backend/src/main/java/blazing/jeux/service/DeckService.java - Ranking service
backend/src/main/java/blazing/jeux/service/RankingService.java
Live game
- Game endpoint
backend/src/main/java/blazing/jeux/websocket/GameEndpoint.java - Chat endpoint
backend/src/main/java/blazing/jeux/websocket/ChatEndpoint.java
Persistence
- JPA repositories
backend/src/main/java/blazing/jeux/repositories - MySQL
Other components
- Player
Connections 31
- Player → App navigation: uses
- App navigation → Login page: shows
- App navigation → Lobby page: shows
- App navigation → Game page: shows
- App navigation → Ranking page: shows
- Login page → REST client: requests auth
- Lobby page → REST client: requests lobby
- Game page → REST client: requests game
- Ranking page → REST client: requests ranking
- Game page → WebSocket client: sends actions
- Game page → Chat UI: renders
- Chat UI → WebSocket client: sends messages
- REST client → Auth controller: REST calls
- REST client → Lobby controller: REST calls
- REST client → Game controller: REST calls
- REST client → Ranking controller: REST calls
- Auth controller → Authentication: delegates auth
- Lobby controller → Game rules: manages games
- Game controller → Game rules: runs game
- Ranking controller → Ranking service: fetches ranking
- Game rules → Deck operations: creates and draws
- Authentication → JPA repositories: reads and writes
- Game rules → JPA repositories: reads and writes
- Deck operations → JPA repositories: reads and writes
- Ranking service → JPA repositories: reads and writes
- JPA repositories → MySQL: persists
- WebSocket client → Game endpoint: sends actions
- Game endpoint → Game rules: updates game
- Game endpoint → WebSocket client: broadcasts state
- WebSocket client → Chat endpoint: sends chat
- Chat endpoint → JPA repositories: persists messages