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 (Hosted on Supabase)
  • Prisma ORM
  • Redis (Storage and Pub/Sub)
  • Resend (Email service)
  • Stockfish-Docker (Optional - stockfish-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
  • Planned
    • User Profile Viewing
    • Game Room Chat
    • Elo Rating System
    • In App Updates (Android)

Installation

  1. Clone the repository
  2. Install the dependencies
    • Flutter
    • Node.js
    • PostgreSQL (with Supabase)
    • Redis (preferably with Docker)
  3. Rename the .env file in the server directory to .env.local and fill in the required environment variables
  4. Edit server urls in the lib/constants.dart file
  5. Run the server
    cd server
    npm install
    npm run dev
  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.