<- 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