Real-Time Competitive Programming Platform
CodeClash transforms coding interview preparation into an engaging competitive experience. Challenge peers in real-time LeetCode problem-solving battles, track your progress through ranking systems, and build coding skills through gamified learning.
CodeClash is a competitive programming platform designed to make coding practice more engaging and social. Users can participate in head-to-head coding battles, track their skill progression through a comprehensive ranking system, and compete on global leaderboards.
- Real-Time Battles: Engage in live 1v1 coding competitions with synchronized problem solving
- Authentication System: Secure login via email registration or Google OAuth integration
- User Profiles: Customizable profiles with avatar selection, skill tracking, and goal setting
- Ranking System: Progressive skill-based ranking from Bronze to Grandmaster tiers
- Global Leaderboards: Community-wide competition tracking and statistics
- Responsive Design: Modern, clean interface built with Tailwind CSS
- React 18: Modern React with hooks and functional components
- Tailwind CSS: Utility-first CSS framework for responsive design
- Socket.io Client: Real-time bidirectional communication
- Lucide React: Comprehensive icon library
- Node.js: JavaScript runtime environment
- Express.js: Web application framework
- Socket.io: WebSocket implementation for real-time features
- JWT: JSON Web Token authentication with 14-day token expiration
- bcryptjs: Password hashing and security
- PostgreSQL: Relational database for data persistence
- Judge0 API: Code execution and testing environment
- Monaco Editor: Advanced code editing interface
- Node.js version 16 or higher
- npm version 8 or higher
-
Clone the Repository
git clone https://github.com/your-username/Code-Clash.git cd Code-Clash -
Install Root Dependencies
npm install
-
Install Frontend Dependencies
cd client npm install -
Install Backend Dependencies
cd ../server npm install
cp client/.env.example client/.env.localcp server/.env.example server/.envFrom the root directory, start both servers:
npm run devThis will launch:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
npm run dev- Start both frontend and backend serversnpm run client- Start frontend server onlynpm run server- Start backend server only
npm start- Start React development servernpm run build- Create production build
npm run dev- Start server with nodemon (auto-restart on changes)npm start- Start production server
CodeClash/
├── client/ # React frontend application
├── server/ # Express backend application
├── package.json # Root package configuration
└── README.md # Project documentation
We welcome contributions to CodeClash. Please ensure all code follows the established patterns and includes appropriate testing.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or feature requests, please open an issue on the GitHub repository.