How zhuyinghua6961/uno works
UNO is a multiplayer card-game product spanning Web, Flutter, and backend services. The main player journey is account access, lobby and room setup (including invitations and team assignment), then live classic or 2v2 play; room/team chat and teammate voice complement the match. The graph shows the documented service and persistence capabilities, but backend and Flutter implementation details were not sampled, so their internal wiring is intentionally limited.
Main entry points: backend API gateway · App.vue Web application · MatchView.vue Match view · RoomChat.vue Room chat
Components 23
Web client
- Web application
web/src/App.vue - Route access
web/src/router.ts - Account state
web/src/stores/auth.ts - Account API
web/src/api/auth.ts - Lobby and rooms
web/src/stores/lobby.ts - Room views
web/src/views/WaitingRoomView.vue - Match view
web/src/views/MatchView.vue - Match API
web/src/api/matches.ts - Match socket
web/src/game/matchSocket.ts - Room chat
web/src/components/RoomChat.vue - Chat API
web/src/api/chat.ts - Chat socket
web/src/api/chatSocket.ts - Teammate voice
web/src/components/TeamVoice.vue - Voice API
web/src/api/voice.ts
Backend services
- API gateway
backend - Identity service
backend - Game service
backend
Flutter client
- Flutter app
flutter
Runtime integrations
- Game database
backend - Identity database
backend - Email delivery
- LiveKit
Other components
- Player
Connections 33
- Player → Web application: uses
- Web application → Route access: renders routes
- Web application → Account state: restores session
- Route access → Account state: guards routes
- Account state → Account API: requests account
- Account API → API gateway: calls API
- Web application → API gateway: checks bootstrap
- Player → Lobby and rooms: browses rooms
- Lobby and rooms → Room views: supplies room state
- Room views → API gateway: room requests
- Player → Match view: plays match
- Match view → Match API: loads and acts
- Match view → Match socket: subscribes and commands
- Match API → API gateway: calls API
- Match socket → Game service: WebSocket messages
- API gateway → Identity service: routes account calls
- API gateway → Game service: routes game calls
- Game service → Identity service: verifies sessions
- Game service → Game database: persists game state
- Identity service → Identity database: stores accounts
- Identity service → Email delivery: sends verification
- Player → Room chat: exchanges messages
- Room chat → Chat API: loads and sends
- Room chat → Chat socket: subscribes
- Chat API → API gateway: calls API
- Chat socket → API gateway: connects
- Player → Teammate voice: joins voice
- Teammate voice → Voice API: requests credentials
- Voice API → API gateway: calls API
- Teammate voice → LiveKit: joins audio room
- Player → Flutter app: uses
- Flutter app → API gateway: uses APIs
- Flutter app → LiveKit: joins audio room