<- back to projects

PokerOnline

Real-time multiplayer poker platform

PythonDjangoJavaScriptNode.jsMongoDBWebSockets

// overview

A full-stack real-time multiplayer poker platform supporting 50+ concurrent connections with sub-100ms latency. Built with a Django backend, Node.js WebSocket server, and vanilla JavaScript frontend.

// architecture

The system uses a dual-server architecture: Django handles REST API endpoints for authentication and user management, while a Node.js WebSocket server manages real-time game state broadcasting. MongoDB stores user profiles and aggregates game statistics for leaderboard queries.

// challenges

  • ·Achieving sub-100ms latency with 50+ concurrent WebSocket connections required careful load testing and connection pooling
  • ·Implementing stateless JWT authentication with secure refresh token rotation across both Django and Node.js servers
  • ·Designing a MongoDB schema that could efficiently aggregate real-time statistics while maintaining fast read times for leaderboards

// learnings

  • ·Real-time multiplayer systems demand careful state synchronization — race conditions in game logic were the hardest bugs to track down
  • ·WebSocket architecture scales differently than REST — connection management becomes the primary bottleneck before CPU or memory
  • ·Stateless auth with JWT rotation is elegant but requires thoughtful handling of edge cases like concurrent requests during token refresh