Full-stack Multiplayer Chess Web App

Job ID: 40494781

Budget: ₹1,500 – ₹12,500 INR

ChessMaster — Full Project Description
ChessMaster is a full-stack multiplayer chess web application built with Node.js, Express, MongoDB, and Socket.io. It supports offline, bot, and live online matches with real-time gameplay, user authentication, and game history tracking.

Tech Stack

Backend: Node.js, Express.js, Socket.io
Database: MongoDB with Mongoose
Frontend: EJS templating, Tailwind CSS, vanilla JavaScript
Chess Engine: chess.js (game logic), Stockfish (bot AI via Web Worker)
Auth: express-session, connect-mongo, connect-flash


Features
Authentication & Profiles

User registration and login with session-based authentication
Profile setup with username, full name, country, bio, and date of birth
Separate ratings for Rapid, Blitz, and Bullet time controls
Friend request system between users

Game Modes

Local 2-Player — two players on the same device with full clock support
vs Bot — 32 Stockfish-powered bots ranging from 100 to 3200 rating, selectable from a grid UI
Online Multiplayer — real-time 1v1 matches via Socket.io with live matchmaking

Chess Board

Drag and drop + click-to-move support
Legal move highlighting with dot indicators
Last move highlighting
King in check highlighted in red
Board flip for black player
6 customizable board themes (Classic, Midnight, Forest, Ocean, Ruby, Walnut)
Full move history panel with SAN notation

Time Controls

Bullet (1+0, 1+1, 2+1)
Blitz (3+0, 3+2, 5+0)
Rapid (10+0, 10+5, 15+10)
Increment support per move
Low time warning (red clock under 10 seconds)
Time-out detection with winner declaration

Online Multiplayer

Socket.io based real-time matchmaking
Players matched only with same time control selected
Board flips correctly for black player
Move sync between both clients in real time
Game position preserved on page refresh via sessionStorage
Timer preserved on page refresh
Opponent disconnect detection
Game over modal with result

Game History & Replay

All completed games saved to MongoDB
Full move-by-move replay viewer
Leaderboard showing recent 20 games
Game stats including time mode, total moves, winner, and players

Settings

Board theme selection saved per user to database
Theme applied globally across all game modes