A real-time multiplayer chess application built with Node.js, Express, and Socket.IO. Play chess online, analyze games, solve puzzles, and compete with AI opponents.
-
Real-time Multiplayer Chess
- Play against other players online
- Real-time game updates using WebSocket
- In-game chat functionality
- ELO rating system
-
AI Opponents
- Multiple difficulty levels
- Powered by Stockfish chess engine
- Customizable AI playing styles
- Analysis of your games
-
Game Modes
- Classic Chess
- Puzzle Solving
- Game Analysis
- Tournament Play
- Bot Matches
-
User Features
- User authentication and profiles
- Game history and statistics
- Performance tracking
- Social features
-
Backend
- Node.js
- Express.js
- Socket.IO
- MongoDB with Mongoose
- JWT Authentication
-
Frontend
- EJS Templates
- JavaScript (ES6+)
- CSS3
- WebSocket client
- Chess.js library
-
Tools & DevOps
- Webpack for asset bundling
- Jest for testing
- CodeQL for security analysis
- GitHub Actions for CI/CD
- NPM for package management
- Node.js (v18 or higher)
- MongoDB
- NPM or Yarn
- Git
-
Clone the repository:
git clone https://github.com/BTheCoderr/chessUniverseApp.git cd chessUniverseApp -
Install dependencies:
npm install
-
Create a .env file in the root directory:
PORT=3000 MONGODB_URI=your_mongodb_connection_string SESSION_SECRET=your_session_secret
-
Start the development server:
npm run dev
The application will be available at http://localhost:3000
To create a production build:
npm run build
npm startchessUniverseApp/
├── public/ # Static assets
│ ├── css/ # Stylesheets
│ ├── js/ # Client-side JavaScript
│ └── images/ # Image assets
├── views/ # EJS templates
├── routes/ # Express routes
├── models/ # Mongoose models
├── middleware/ # Custom middleware
├── services/ # Business logic
├── sockets/ # WebSocket handlers
├── utils/ # Utility functions
└── tests/ # Test files
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage report- ESLint for code linting
- Prettier for code formatting
- Jest for unit testing
- CodeQL for security analysis
- Webpack bundles assets
- Babel transpiles modern JavaScript
- PostCSS processes CSS
- Asset optimization for production
- Regular dependency updates
- CodeQL security scanning
- Dependency vulnerability checks
- Session management
- Input validation
- XSS protection
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Chess.js for chess logic
- Socket.IO for real-time communication
- Stockfish for chess engine
- All contributors and users of the application
- GitHub: @BTheCoderr
- Project Link: https://github.com/BTheCoderr/chessUniverseApp
Made with ❤️ by BTheCoderr