Chesstify

Professional Chess Database Management System.

RoleFull Stack Developer
TypeUndergraduate Thesis Project (Informatics Engineering).
Chesstify - Main View
Chesstify - View 2
Chesstify - View 3
About the Project

Chesstify is a specialized, web-based Decision Support and Knowledge Management System designed for professional chess players and coaches.

My Approach

Unlike general online playing platforms (like Chess.com or Lichess), Chesstify focuses strictly on personal archive management. It helps athletes transform massive amounts of raw game data (PGN files) into strategic insights, enabling them to study opponents' opening repertoires and prepare for specific tournament matches.

DjangoPostgreSQLPythonHTMLCSSJavaScript

Pages & Features

01 //

Mass PGN Parsing & Automated Upload

The system can process .pgn files containing thousands of games at once. The backend automatically extracts critical metadata (player names, events, dates, ECO codes, results) and move notations, saving them structurally into a relational database.

02 //

Opening Explorer & Move Statistics

Features an interactive opening explorer. Every time a piece is moved on the board, the system calculates real-time win/draw/loss percentages for subsequent moves based on the aggregated data of all saved games.

03 //

Advanced Asynchronous Search

Powered by AJAX, users can filter games using complex combinations (e.g., player name + black pieces + year + specific ECO code) with instant table updates and zero page reloads.

04 //

Real-time Stockfish Analysis

Integrates the world-class Stockfish engine to provide real-time position evaluation scores and visual arrows recommending the best moves.

05 //

Interactive Chessboard & Legal Move Validation

A highly responsive visual board that strictly enforces standard chess rules, preventing illegal moves during manual analysis and exploration.

Tech & Architecture

Backend Layer

Python & Django Framework

Acts as the main orchestrator, handling HTTP routing, secure ORM operations, and business logic.

python-chess (Library)

A dedicated backend service used exclusively to parse complex PGN texts and extract metadata before saving it to the database.

Database Layer

PostgreSQL

Chosen for its robustness in handling large volumes of long-text data and executing complex relational queries across thousands of chess games.

Frontend Layer

Core Web Tech

HTML5, CSS3, Bootstrap 5, Vanilla JavaScript (with AJAX for seamless UX).

cm-chessboard (Library)

Renders the interactive, SVG-based visual chessboard.

chess.js (Library)

Acts as the frontend 'digital referee.' It maintains the game state in the browser and validates whether a user's move is legal.

Engine Layer

Stockfish (WebAssembly)

Runs completely on the client side inside an isolated Web Worker. This architecture ensures that heavy mathematical evaluations do not freeze the main UI thread.

!
Final Reflection

The biggest technical challenge and achievement of this project was successfully bridging static, text-based PGN data in the database with a highly dynamic, interactive frontend chessboard, while simultaneously running a heavy background calculation engine (Stockfish) without compromising web performance or user experience.