/chess-react

Primary LanguageJavaScript

PlayChess - React Frontend

Play Live Here: https://jorgeschess.app/

๐Ÿ‘‘ A dynamic, real-time chess experience for enthusiasts and strategists alike, powered by React and Django.

Play, strategize, and conquer. Are you ready to make your move?

Contributions welcome GitHub last commit GitHub stars GitHub forks

image

๐ŸŽฏ Project Vision

PlayChess leverages the best of modern web technologies to bring you a seamless, real-time chess playing experience. With room-based multiplayer functionality, comprehensive move validation, and soon, AI-based opponents powered by Stockfish, PlayChess is more than just a gameโ€”it's my most technical personal project so far.

๐Ÿš€ Features

  • Real-Time Multiplayer: Create a room and challenge a friend or a foe with a unique URL.

  • Move Validation: Ensures all moves adhere to official chess rules, with visual aids.

  • Move Scoring / Practice Mode: If enabled uses the Stockfish engine to calculate the "goodness" of each move and provide a visual aid to indicate it.

    • image
    • White Knight on G1 being selected and showing scores of possibles moves.
  • AI Opponents: Practice your skills against AI with varying difficulty levels, powered by the formidable Stockfish engine.

    • Current difficulties:
    • image
  • User registration: Via OAuth and the supported social media connections!

  • Match History: Allows you to track your specific match history and display some match data.

    • image

โœจ Demo

Playing against myself on localhost! ezgif-3-58f2e31fe9

Move Scoring

image

๐Ÿ›  Built With

Frontend

  • React and Chakra UI come together to create a responsive and visually appealing interface. React's efficiency pairs perfectly with Chakra UI's component library for rapid UI development.

Backend

  • Django provides the robust backend framework needed for secure API endpoints, smooth room management, and reliable user authentication, all while facilitating quick development.

Database

  • PostgreSQL My choice for its robustness, handling complex game states and user data with efficiency and reliability, perfectly scaling with our application's growth, also very nice integration with Django.