Skip to content

Feat/scribel game#128

Open
SuhailShaik19 wants to merge 5 commits into
everest-engineering:mainfrom
SuhailShaik19:feat/scribel-game
Open

Feat/scribel game#128
SuhailShaik19 wants to merge 5 commits into
everest-engineering:mainfrom
SuhailShaik19:feat/scribel-game

Conversation

@SuhailShaik19

@SuhailShaik19 SuhailShaik19 commented Jun 11, 2026

Copy link
Copy Markdown

Summary

Implement the full drawing game loop: room lobby with host controls,drawing canvas, guess submission, scoring, result state, and restart.

  • DrawingCanvas — interactive HTML5 canvas with mouse/touch support for the drawer; guessers see the synced drawing as an or a "Waiting..." placeholder
  • GamePage — role-based view: drawer sees secret word and can draw; guessers see the drawing and a guess form; result view displays the word, scores, and full guess history; host can restart
  • LobbyPage — auto-polling, host badge, host-only start with 2-player minimum, auto-navigate to game on status change
  • GuessForm — wired to API with client-side empty-guess rejection
  • ResultPanel — shows correct word, who guessed correctly, and all guesses
  • Scoreboard — live scores per participant
  • CSS — styles for canvas, guess list, result display, host badge, secret word banner, and all game states

Contributor

Suhail added 5 commits June 11, 2026 19:11
- Extend Room model with game state (hostId, drawerId, secretWord,
  guesses, drawingData, score, playing/result statuses)
- Add game logic: startGame, submitGuess (case-insensitive,
  scores 100), saveDrawing, clearDrawing, endRound, restartGame
- Add POST routes: /start, /guess, /draw, /clear, /end-round, /restart
- Add Zod validation schemas for all new endpoints
- Reject empty/whitespace-only player names with clear message
- Improve Zod error handler to surface first validation issue
- Add API methods: startGame, submitGuess, saveDrawing, clearDrawing,
  endRound, restartGame
- Update RoomSnapshot type with hostId, drawerId, secretWord, guesses,
  drawingData, score, RoomStatus
- Add HTTP polling to RoomStore (2s interval) with start/stopPolling
- Add usePolling hook for lobby and game pages
- Add store actions for all game operations
- DrawingCanvas: interactive canvas for drawer with mouse/touch support;
  guessers see synced drawing as image or waiting placeholder
- GamePage: role-based UI — drawer sees secret word and canvas,
  guessers see guess form and synced drawing; result view shows
  word, scores, and full guess history; host restart button
- LobbyPage: auto-polling, host badge, host-only start with
  2-player minimum, auto-navigate to game on status change
- GuessForm: wired to API with client-side empty-guess rejection
- ResultPanel: displays correct word, correct guesser, all guesses
- Scoreboard: shows live scores per participant
- CSS: styles for canvas, guess list, result display, host badge,
  secret word banner, game states
Remove unnecessary 'peer: true' markers hoisted during npm install.
- discovery-notes.md: 8 incomplete behaviors, 4 assumptions, file list
- speckit.constitution: engineering principles, AI rules, review discipline
- speckit.specify: 4 feature groups with acceptance criteria and edge cases
- speckit.plan: state model, data flow diagram, file-level implementation plan
- speckit.tasks: ordered task list with dependencies across 10 phases (all complete)
- reflection.md: comprehensive report on starter state, additions, and tradeoffs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant