Skip to content

Scribble assignment - Ankit#118

Open
ankit-everest wants to merge 23 commits into
everest-engineering:mainfrom
ankit-everest:scribble-assignment
Open

Scribble assignment - Ankit#118
ankit-everest wants to merge 23 commits into
everest-engineering:mainfrom
ankit-everest:scribble-assignment

Conversation

@ankit-everest

@ankit-everest ankit-everest commented Jun 9, 2026

Copy link
Copy Markdown

Summary

Implemented the complete Scribble multiplayer game using an Express + TypeScript backend and React + Vite frontend. The application uses in-memory state management and HTTP polling for synchronization, following a Spec-Driven Development workflow across all four business scenarios.

Architecture

  • Express + TypeScript backend with Zod validation
  • React 18 + Vite frontend
  • In-memory game state management
  • HTTP polling (~2s) for synchronization
  • No WebSockets, databases, authentication, or persistence

Room Setup & Lobby

  • Creator becomes the host
  • Room and player validation with clear error handling
  • Automatic lobby polling
  • Host-only game start with a minimum of 2 players
  • Multi-room isolation

Game Start & Drawer Flow

  • Deterministic drawer assignment
  • Deterministic word selection
  • Drawer-only word visibility
  • Game start validation and role management

Gameplay Interaction

  • Shared drawing canvas with clear functionality
  • Guess submission and validation
  • Case-insensitive word matching
  • Guess history synchronization via polling
  • Deterministic scoring (100 for correct, 0 for incorrect)

Result & Restart

  • Correct word, final scores, and guess history visible to all players
  • Host-controlled restart flow
  • Players preserved across restarts
  • Round state cleared and lobby restored

Validation

Validated all four business scenarios using multiple browser sessions, covering room management, gameplay flow, scoring, synchronization, room isolation, and restart behavior.

Contributor

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