Skip to content

This is an online multiplayer chess game built in flutter and node.js

License

Notifications You must be signed in to change notification settings

MananGandhi1810/online-chess

Repository files navigation

Online Chess Game

This is a scalable online multiplayer chess game (in development) built with Flutter and Node.js. You can play on the web using this link or download the Android APK from here.

Technologies

  • Flutter
  • Node.js
  • Express.js
  • Socket.io
  • PostgreSQL
  • Prisma ORM
  • Redis (Storage and Pub/Sub)
  • Resend (Email service)
  • Stockfish-Docker (Optional - stockfish-docker)
  • Docker

Features

  • Completed
    • User Authentication
    • Email Verification
    • Game Room Creation
    • Game Room Joining
    • Real-time Chess Game
    • Move History
    • Mobile and Web Support
    • Move Validation
    • Checkmate Detection
    • Stalemate Detection
    • Draw Detection
    • Resignation
    • Game Caching (Redis)
    • Disconnection Detection
    • Game History
    • View Past Games
    • Game Analysis using Stockfish (Deployed using stockfish-docker) (Disabled on website and app due to server failure)
    • Reactions
    • Docker Compose for easy deployment

Installation

  1. Clone the repository
  2. Install the dependencies
    • Flutter
    • Node.js
    • PostgreSQL (preferably with Docker)
    • Redis (preferably with Docker)
  3. Rename the .env file in the server directory to .env and fill in the required environment variables
  4. Edit server urls in the lib/constants.dart file
  5. Run the server
    docker-compose up -d
  6. Run the client
    flutter pub get
    flutter run

Contribution Guidelines

Read the CONTRIBUTING.md file for more information on how to contribute to this project.