Two iterations: (1) taking over an existing Express.js/Socket.io/MongoDB/Passport game (reworked views, admin panel and socket handling), (2) Firebase Realtime DB with jQuery and Material Design. chess.js for move validation.
The first version takes over an existing Express.js/Socket.io game, initially built by a collaborator. I reworked the views, the admin panel and the socket handling for bidirectional real-time communication. MongoDB persists the games and move history, Passport handles authentication, and chess.js validates moves according to FIDE rules: castling, en passant, promotion, stalemate, check and checkmate.
The second version replaces the custom backend with Firebase Realtime DB, which automatically synchronizes the board state between the two players. The jQuery and Material Design frontend provides a responsive interface. The choice of two implementations illustrates the trade-off between control (custom server) and deployment simplicity (serverless Firebase).
V1: taking over an existing Express.js/Socket.io game, rebuilding the views, the admin panel and the socket handling.
V1: MongoDB/Mongoose for game persistence, Passport for authentication.
V1: Handlebars templates, chess.js for rules validation.
V2: Firebase Realtime Database for serverless synchronization.
V2: jQuery frontend with chessboard.js and Material Design Lite.
Architectural comparison of WebSocket vs Firebase for real-time gaming.
Real-time WebSockets
Serverless Realtime DB
Rules validation
A brief, a repo, or a quick call - whatever works.