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.
- 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)
- 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)
- Clone the repository
- Install the dependencies
- Flutter
- Node.js
- PostgreSQL (with Supabase)
- Redis (preferably with Docker)
- Rename the .env file in the server directory to .env.local and fill in the required environment variables
- Edit server urls in the
lib/constants.dart
file - Run the server
cd server npm install npm run dev
- Run the client
flutter pub get flutter run
Read the CONTRIBUTING.md file for more information on how to contribute to this project.