# moazabdulsalam/billiards-club architecture

> Architecture diagram of the GitHub repository moazabdulsalam/billiards-club, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/moazabdulsalam/billiards-club
- Repository: https://github.com/moazabdulsalam/billiards-club

## Overview

This is a Windows Forms billiards-club management application, launched at a login screen. Its repository separates desktop screens for people, players, users, and pool tables from business objects and SQL Server data-access modules. The sampled player business logic retrieves player records and statistics, resolves associated people, and exposes payment queries. The tree indicates additional management screens and payment/table subsystems, but their wiring is not established by the excerpts, so the graph does not infer those call paths.

Main entry points: [`BilliardsBusinessLayer/clsPlayer.cs`](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPlayer.cs) (Player business logic), [`BilliardsDataAccessLayer/clsPlayersData.cs`](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPlayersData.cs) (Player data access), [`Billiards Club/Program.cs`](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Program.cs) (Application entry), [`Billiards Club/Users/frmLogin.cs`](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Users/frmLogin.cs) (Login screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop UI"]
  node_program["Application entry<br/>[Program.cs]"]
end

subgraph group_identity["Identity"]
  node_login["Login screen<br/>[frmLogin.cs]"]
  node_user_management["User management<br/>[frmManageUsers.cs]"]
end

subgraph group_club["Club records"]
  node_person_management["People management<br/>[frmManagePeople.cs]"]
  node_player_management["Player management"]
  node_player_details["Player details UI<br/>[ctrlPlayerCard.cs]"]
  node_table_management["Pool table screens<br/>[frmPoolTables.cs]"]
end

subgraph group_business["Business logic"]
  node_user_business["User business logic<br/>[clsUser.cs]"]
  node_person_business["Person business logic<br/>[clsPerson.cs]"]
  node_player_business["Player business logic<br/>[clsPlayer.cs]"]
  node_payment_business["Payment business logic<br/>[clsPayment.cs]"]
  node_table_business["Table business logic<br/>[clsPoolTable.cs]"]
end

subgraph group_persistence["Persistence"]
  node_user_data["User data access<br/>[clsUsersData.cs]"]
  node_people_data["People data access<br/>[clsPeopleData.cs]"]
  node_player_data["Player data access<br/>[clsPlayersData.cs]"]
  node_payment_data["Payment data access<br/>[clsPaymentsData.cs]"]
  node_table_data["Table data access"]
end

node_operator(("Club operator"))
node_sql_server[("SQL Server")]

node_operator -->|"starts"| node_program
node_program -->|"runs"| node_login
node_player_business -->|"loads player data"| node_player_data
node_player_business -->|"resolves person"| node_person_business
node_player_business -->|"loads statistics"| node_player_data
node_player_business -->|"queries payments"| node_payment_data
node_player_data -->|"executes procedures"| node_sql_server

click node_program "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Program.cs"
click node_login "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Users/frmLogin.cs"
click node_user_management "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Users/frmManageUsers.cs"
click node_user_business "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsUser.cs"
click node_user_data "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsUsersData.cs"
click node_person_management "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/People/frmManagePeople.cs"
click node_person_business "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPerson.cs"
click node_people_data "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPeopleData.cs"
click node_player_management "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Players/frmManagePlayers.cs"
click node_player_details "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Players/Controls/ctrlPlayerCard.cs"
click node_player_business "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPlayer.cs"
click node_player_data "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPlayersData.cs"
click node_payment_business "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPayment.cs"
click node_payment_data "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPaymentsData.cs"
click node_table_management "https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/PoolTables/frmPoolTables.cs"
click node_table_business "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPoolTable.cs"
click node_table_data "https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPoolTablesData.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_program toneBlue
class node_login,node_user_management,node_sql_server toneAmber
class node_person_management,node_player_management,node_player_details,node_table_management toneMint
class node_user_business,node_person_business,node_player_business,node_payment_business,node_table_business toneRose
class node_user_data,node_people_data,node_player_data,node_payment_data,node_table_data,node_operator toneIndigo
```

## Components

### Desktop UI

- [Application entry](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Program.cs): `Billiards Club/Program.cs`

### Identity

- [Login screen](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Users/frmLogin.cs): `Billiards Club/Users/frmLogin.cs`
- [User management](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Users/frmManageUsers.cs): `Billiards Club/Users/frmManageUsers.cs`

### Club records

- [People management](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/People/frmManagePeople.cs): `Billiards Club/People/frmManagePeople.cs`
- [Player management](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Players/frmManagePlayers.cs): `Billiards Club/Players/frmManagePlayers.cs`
- [Player details UI](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/Players/Controls/ctrlPlayerCard.cs): `Billiards Club/Players/Controls/ctrlPlayerCard.cs`
- [Pool table screens](https://github.com/moazabdulsalam/billiards-club/blob/master/Billiards%20Club/PoolTables/frmPoolTables.cs): `Billiards Club/PoolTables/frmPoolTables.cs`

### Business logic

- [User business logic](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsUser.cs): `BilliardsBusinessLayer/clsUser.cs`
- [Person business logic](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPerson.cs): `BilliardsBusinessLayer/clsPerson.cs`
- [Player business logic](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPlayer.cs): `BilliardsBusinessLayer/clsPlayer.cs`
- [Payment business logic](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPayment.cs): `BilliardsBusinessLayer/clsPayment.cs`
- [Table business logic](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsBusinessLayer/clsPoolTable.cs): `BilliardsBusinessLayer/clsPoolTable.cs`

### Persistence

- [User data access](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsUsersData.cs): `BilliardsDataAccessLayer/clsUsersData.cs`
- [People data access](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPeopleData.cs): `BilliardsDataAccessLayer/clsPeopleData.cs`
- [Player data access](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPlayersData.cs): `BilliardsDataAccessLayer/clsPlayersData.cs`
- [Payment data access](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPaymentsData.cs): `BilliardsDataAccessLayer/clsPaymentsData.cs`
- [Table data access](https://github.com/moazabdulsalam/billiards-club/blob/master/BilliardsDataAccessLayer/clsPoolTablesData.cs): `BilliardsDataAccessLayer/clsPoolTablesData.cs`

### Other components

- **Club operator**
- **SQL Server**

## Connections

- Club operator → Application entry: starts
- Application entry → Login screen: runs
- Player business logic → Player data access: loads player data
- Player business logic → Person business logic: resolves person
- Player business logic → Player data access: loads statistics
- Player business logic → Payment data access: queries payments
- Player data access → SQL Server: executes procedures
