This project is a desktop chess game built with Java Swing, featuring a graphical interface for playing chess, and a login system to authenticate users before they start a game. User passwords are securely stored in a database using modern encryption techniques.
The goal of the project is to recreate a classic chess game with a user-friendly interface, while also practicing secure authentication methods. Players must log in or register before playing. Once authenticated, they can play a full game of chess with correct piece movements, turn-based logic, and pawn promotion. The project is meant as a combination of learning object-oriented programming, building GUIs with Java Swing, working with databases, and implementing basic cybersecurity best practices.
- Java Swing – for building the GUI and handling events.
- JDBC – to connect to a MySQL database for storing user accounts and scores.
- BCrypt / jBCrypt – for secure password hashing.
- MySQL – for the user database backend.
- Object-Oriented Design – for representing chess pieces, cells, and game logic with clear class hierarchies.
-
Password Encryption Library (jBCrypt)
jBCrypt Download Site)
Used for securely hashing user passwords before storing them in the database. -
Chess Tutorials for Move Rules and Game Mechanics
Chess.com Rules Guide
Helped with implementing the correct movement rules, pawn promotion, and check/checkmate detection. -
JDBC Used (Java Database Connectivity)
MySQL Connector
Used to integrate MySQL database access into the Java application. -
Java Swing Documentation
Official Java Swing Docs
Reference for GUI components, dialogs, and event handling.
- User registration and login with encrypted password storage.
- Interactive chessboard with move validation.
- Visual feedback on selected pieces and available moves.
- Turn-based logic for white and black players.
- Pawn promotion dialog to choose a replacement piece.
- Score tracking and user data stored in MySQL.