How ayoup1/guess-word works
This is a two-player, real-time “Guess the Word” game. A player creates a room with a secret answer or joins an available room; players then exchange questions and yes/no answers until a guess wins or the round limit ends the game. The Vue client presents the lobby and game, while the Socket.IO server coordinates events and keeps game and player state in memory. The tree and excerpts support the main workflow and disconnect/retry behavior; unsampled client details are represented only where documented by the tree.
Main entry points: main.js Socket.IO client · index.js Socket event handlers · store.js Vuex game state · Welcome.vue Room lobby
Components 12
Game client
- Home view
client/src/views/Home.vue - Room lobby
client/src/components/Welcome.vue - Game screen
client/src/views/Game.vue - Client router
client/src/router.js - App event listener
client/src/App.vue - Vuex game state
client/src/store.js - Lobby counters
client/src/components/Footer.vue - Socket.IO client
client/src/main.js
Realtime server
- Socket event handlers
server/index.js
In-memory domain
- Game map
server/Model/Game.js - Player registry
server/Model/ActivePlayer.js
Other components
- Player
Connections 19
- Player → Room lobby: chooses room
- Player → Game screen: plays game
- Home view → Room lobby: renders
- Client router → Home view: routes home
- Client router → Game screen: routes game
- Room lobby → Socket.IO client: emits join/create
- Game screen → Socket.IO client: emits game actions
- Socket.IO client → Socket event handlers: connects
- Socket event handlers → Game map: creates and updates
- Socket event handlers → Player registry: registers and looks up
- Game map → Player registry: looks up sockets
- Socket event handlers → Socket.IO client: dispatches game updates
- Socket event handlers → Socket.IO client: dispatches lobby counts
- App event listener → Vuex game state: applies player/game updates
- Socket.IO client → App event listener: delivers game events
- Socket.IO client → Lobby counters: delivers lobby counts
- Lobby counters → Vuex game state: updates availability
- Vuex game state → Room lobby: provides availability
- Vuex game state → Game screen: provides game state