Skip to content

Codeeaner/iChess

Repository files navigation

# iChess - Online Chess Platform

A real-time multiplayer chess platform built with React, Firebase, and TypeScript.

## Features

### Game Modes
- Single Player vs Computer (Multiple difficulty levels)
- Live Online Multiplayer
- Private Games with Friends
- Tournament System

### Tournament Features
- Swiss Tournament Format
- Real-time Tournament Brackets
- Live Game Viewing
- Tournament Chat
- Player Rankings
- Tournament Countdown Timer

### Game Features
- Real-time Chess Games
- Time Controls (Multiple formats)
- Move Validation
- Game Chat
- Premove Support
- Take Back Requests
- Draw Offers
- Player Statistics

### Social Features
- Global Chat
- User Profiles
- Rating System
- Game History

## Prerequisites

- Node.js (v16 or higher)
- npm or yarn
- Firebase Account

## Installation

1. Clone the repository:
```bash
git clone https://github.com/Codeeaner/iChess.git
cd ichess
```

2. Install dependencies:
``` bash
npm install
```

3. Configure Firebase:
 - Create a Firebase project
 - Enable Authentication and Firestore
 - Copy your Firebase config
 - Create .env file:

 VITE_FIREBASE_API_KEY=your_api_key
 VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
 VITE_FIREBASE_PROJECT_ID=your_project_id
 VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
 VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
 VITE_FIREBASE_APP_ID=your_app_id    

## Running the Project
Development mode:
```bash
npm run dev
```

Build for production:
```bash
npm run build
```

## Project Structure

/src
  /components      # React components
  /firebase        # Firebase configuration
  /hooks          # Custom React hooks
  /lib            # Utility functions
  /store          # State management
  /types          # TypeScript types
  /styles         # CSS/Tailwind styles

## Key Components
 - GameBoard: Chess board implementation
 - GameLobby: Game mode selection
 - TournamentLobby: Tournament management
 - PrivateGame: Private game implementation
 - Chat: Real-time chat system
 - Stats: Player statistics

## Firebase Collections
 - users: User profiles
 - games: Active and completed games
 - tournaments: Tournament data
 - messages: Chat messages

## Contributing
 - Fork the repository
 - Create a feature branch
 - Submit a pull request

## License
 - Regarding to the license file

## Support
 - Open an issue for bug reports or feature requests.

About

Chess Website for CLHS Chess Cl ub

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages