Skip to content

I-Kazanci/chessDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChessDB – FIDE Management System

ChessDB is a Flask-based web application backed by a MySQL relational database that simulates a FIDE-style chess management system.
It models real-world entities like players, coaches, arbiters, teams, tournaments, halls, and matches, while enforcing constraints with a carefully designed relational schema.

This project demonstrates:

  • Complex relational modeling (inheritance, weak entities, many-to-many, participation constraints).
  • Role-based access control (DB Managers, Players, Coaches, Arbiters).
  • Integration of SQL schema, seed data, and a Python/Flask frontend.
  • A retro-style pixel-art UI using custom HTML/CSS.

Tech Stack

  • Backend: Python 3.12, Flask
  • Database: MySQL
  • Frontend: HTML, CSS (retro pixel-art style, Press Start 2P font)

Features by Role

Login Screen

Login Screen

DB Manager

  • Add new users (Players, Coaches, Arbiters).
  • Enforce validation rules (passwords, ELO rating > 1000, date formats).
  • Manage entities like halls (rename, edit).

DB Manager Dashboard


Player

  • View their personal dashboard with pixel-art portrait.
  • See all opponents they have faced.
  • Identify their most played opponents and average opponent ELO.

Player Dashboard


Coach

  • View current coaching contract and team info.
  • Create new matches (respecting hall availability, time slots, contract period).
  • Assign players to unassigned matches.
  • Delete matches if needed.
  • Browse all available halls.

Coach Dashboard


Arbiter

  • View assigned matches.
  • Submit ratings for completed matches.
  • Track personal statistics (total matches rated, average rating).

Arbiter Dashboard


Relational Model Highlights

  • Inheritance: User → Player, Coach, Arbiter.
  • Weak Entities: Table_Entity depends on Hall.
  • Many-to-Many: Players ↔ Teams (Plays_In), Arbiters ↔ Certifications, Coaches ↔ Certifications.
  • Constraints:
    • ELO rating > 1000 enforced in Player.
    • Unique arbiter assignment per time slot.
    • Teams must face different opponents.
    • Matches restricted to slots 1–4.

The schema is defined in:


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors