A full-stack Cluedo project : Vue/Vite on the frontend, Node/Express + Socket.IO on the backend, and Neo4j storing games, players, cards, actions, and history. It is not just a static board mockup, the backend handles rooms, turns, card distribution, hypotheses, accusations, score updates, and live multiplayer events.
The main quirk is that a lot of the board-game logic lives server-side in cluedo-backend/index.js. The backend creates the secret solution, distributes cards, decides who can refute a hypothesis, logs actions in Neo4j, and broadcasts events to connected clients. There is also a benchmark folder, used to measure backend behavior.
The logic is quite clunky and switching rooms serves no actual purposes. The people, rooms and weapons are nice nods (in French) to my studies :)
To poke at it locally, start Neo4j first and load neo4j-init.cql, then run the backend and frontend separately :
cd cluedo-backend
npm install
npm startcd cluedo-frontend
npm install
npm run devThe benchmark side lives in cluedo-benchmark/ and has its own npm run benchmark script.