All projects
D
Gaming / Real-time

V1: Express/Socket.io/MongoDB/Passport | V2: Firebase/jQuery/Material Design, chess.js

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.

2 Versions
Socket.io V1
Firebase V2
Dev Role

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

Technical architecture

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.

Technical highlights

Socket.io

Real-time WebSockets

Firebase

Serverless Realtime DB

chess.js

Rules validation

Technical stack

Node.js
Express.js
Socket.IO
MongoDB
Firebase
jQuery
JavaScript
Role Full-Stack Developer
Duration 2019-2020
Engagement Freelance via People Per Hour (Tier D)

A similar technical engagement?

A brief, a repo, or a quick call - whatever works.