How osomudeya/humour-game-playbook works
H-Game is a humor-themed memory game with a browser client and an Express API. The principal game workflow is session creation, card matching, and completion with scoring; the backend routes coordinate game data generation, validation, cached session state, and persistent records. Separate routes expose leaderboard and score/profile features, while metrics and tracing provide operational visibility. The README identifies the product but documents few implementation relationships; edges below rely on sampled code or the source index, with the browser-to-API link marked unverified.
Main entry points: server.js API server · game.js Game sessions · database.js Game database access · redis.js Cache utilities
Components 17
Game client
- Browser game
frontend/src/scripts/game.js - Client logger
frontend/src/utils/logger.js
Game API
- API server
backend/server.js - Request validation
backend/middleware/validation.js - Game sessions
backend/routes/game.js - Game rules and content
backend/utils/gameData.js - Scores and profiles
backend/routes/scores.js - Leaderboard
backend/routes/leaderboard.js
Game state
- Game database access
backend/models/database.js - Cache utilities
backend/utils/redis.js
Observability
- Backend logger
backend/logger.js - Metrics middleware
backend/middleware/metrics.js - Tracing setup
backend/tracing.js
Other components
- Player
- PostgreSQL
- Redis
- Jaeger OTLP endpoint
Connections 21
- Player → Browser game: plays
- Browser game → Client logger: logs via
frontend/src/scripts/game.js - Browser game → API server: calls API
- API server → Game sessions: routes to
backend/server.js - API server → Scores and profiles: routes to
backend/server.js - API server → Leaderboard: routes to
backend/server.js - API server → Request validation: uses
- API server → Game database access: initializes
backend/server.js - API server → Cache utilities: initializes
backend/server.js - API server → Metrics middleware: uses
backend/server.js - API server → Backend logger: logs with
backend/server.js - API server → Tracing setup: loads first
backend/server.js - Game sessions → Request validation: validates with
backend/routes/game.js - Game sessions → Game rules and content: generates from
backend/routes/game.js - Game sessions → Game database access: reads and writes
backend/routes/game.js - Game sessions → Cache utilities: reads and writes
backend/routes/game.js - Leaderboard → Game database access: queries
backend/routes/leaderboard.js - Leaderboard → Cache utilities: reads cache
backend/routes/leaderboard.js - Game database access → PostgreSQL: queries
backend/models/database.js - Cache utilities → Redis: caches in
backend/utils/redis.js - Tracing setup → Jaeger OTLP endpoint: exports traces
backend/tracing.js