A Vue 3 + Vite frontend and an Express + WebSocket backend for a playable Gomoku (Five‑in‑a‑Row).
frontend/- Vue 3 app served by Vitebackend/- Express server with WebSocket game engine and simple admin views
sh serve-fullstack.sh
This starts HTTP + WS on http://localhost:3000.
Open the web server URL to play Gomoku (by default http://localhost:3000).
Monitor all Gomoku games at the admin console (by default http://localhost:3000/admin).
- See
frontend/README.mdfor UI features. - See
backend/README.mdfor routes, WebSocket endpoint, and environment options.
- Client: The board is correct
- Client: No errors from JavaScript console
- Client: Players can play without the server
- For this and above, choose Practice locally at
http://localhost:3000
- For this and above, choose Practice locally at
- Server: No errors from the console
- Server/Client: Notify the players whether they wins
- Server: Prevents illegal moves
- Server: Two players can join the game and place stones in sequence
- Server: Server can restore the stones when browser refreshes
- Server/Client: Players can start a new game without restarting the server
- Server: Server can decide which player wins
- For this and above, choose Play vs Human at
http://localhost:3000using two different browsers, or two tabs in the same browser opened in incognito mode (required due to localStorage usage).
- For this and above, choose Play vs Human at
- Bonus: AI opponent
- For this and above, choose Play vs AI at
http://localhost:3000.
- For this and above, choose Play vs AI at
- Server: the server serves the clients. The server serves the clients so the players can visit the server's URL instead of opening the html themselves.
- This is enabled by default



