# krishnapriyaakrish-dev/sports-tournament-management-system-java architecture

> Architecture diagram of the GitHub repository krishnapriyaakrish-dev/sports-tournament-management-system-java, 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/krishnapriyaakrish-dev/sports-tournament-management-system-java
- Repository: https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java

## Overview

This is a console-based sports tournament manager. The user registers teams, adds players and coaches, views tournament details, enters match scores, and views results and the points table. Main.java coordinates this workflow; Tournament and Team hold in-memory state, while Match applies scoring rules. The excerpts show no persistent storage. Coach details are created and displayed, but no association with a team or tournament is visible in the sampled source.

Main entry points: [`src/com/reva/sports/app/Main.java`](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/app/Main.java) (Menu and input), [`src/com/reva/sports/model/Tournament.java`](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Tournament.java) (Tournament), [`src/com/reva/sports/model/Team.java`](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Team.java) (Team roster), [`src/com/reva/sports/model/Player.java`](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Player.java) (Player)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Console workflow"]
  node_main["Menu and input<br/>[Main.java]"]
end

subgraph group_tournament["Tournament state"]
  node_tournament["Tournament<br/>[Tournament.java]"]
  node_team["Team roster<br/>[Team.java]"]
end

subgraph group_people["Participants"]
  node_person["Person base<br/>[Person.java]"]
  node_player["Player<br/>[Player.java]"]
  node_coach["Coach<br/>[Coach.java]"]
  node_sport["Sport type<br/>[SportType.java]"]
end

subgraph group_match["Match scoring"]
  node_match["Match result<br/>[Match.java]"]
  node_scoring["Scoring contract<br/>[Scoring.java]"]
end

node_user(("User"))

node_user -->|"enters choices"| node_main
node_main -->|"displays results"| node_user
node_main -->|"registers teams"| node_tournament
node_main -->|"reads teams"| node_tournament
node_main -->|"displays details"| node_tournament
node_main -->|"displays points"| node_tournament
node_main -->|"creates teams"| node_team
node_main -->|"adds players"| node_team
node_main -->|"creates players"| node_player
node_main -->|"creates coaches"| node_coach
node_main -->|"displays details"| node_person
node_main -->|"displays coach type"| node_coach
node_main -->|"creates match"| node_match
node_main -->|"enters scores"| node_scoring
node_main -->|"gets winner"| node_scoring
node_tournament -->|"stores teams"| node_team
node_team -->|"stores players"| node_player
node_match -->|"awards points"| node_team
node_match -->|"implements"| node_scoring
node_player -->|"extends"| node_person
node_coach -->|"extends"| node_person
node_player -->|"uses sport"| node_sport
node_tournament -->|"uses sport"| node_sport

click node_main "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/app/Main.java"
click node_tournament "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Tournament.java"
click node_team "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Team.java"
click node_person "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Person.java"
click node_player "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Player.java"
click node_coach "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Coach.java"
click node_sport "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/SportType.java"
click node_match "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Match.java"
click node_scoring "https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/service/Scoring.java"

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_main,node_user toneBlue
class node_tournament,node_team toneAmber
class node_person,node_player,node_coach,node_sport toneMint
class node_match,node_scoring toneRose
```

## Components

### Console workflow

- [Menu and input](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/app/Main.java): `src/com/reva/sports/app/Main.java`

### Tournament state

- [Tournament](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Tournament.java): `src/com/reva/sports/model/Tournament.java`
- [Team roster](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Team.java): `src/com/reva/sports/model/Team.java`

### Participants

- [Person base](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Person.java): `src/com/reva/sports/model/Person.java`
- [Player](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Player.java): `src/com/reva/sports/model/Player.java`
- [Coach](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Coach.java): `src/com/reva/sports/model/Coach.java`
- [Sport type](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/SportType.java): `src/com/reva/sports/model/SportType.java`

### Match scoring

- [Match result](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/model/Match.java): `src/com/reva/sports/model/Match.java`
- [Scoring contract](https://github.com/krishnapriyaakrish-dev/sports-tournament-management-system-java/blob/main/src/com/reva/sports/service/Scoring.java): `src/com/reva/sports/service/Scoring.java`

### Other components

- **User**

## Connections

- User → Menu and input: enters choices
- Menu and input → User: displays results
- Menu and input → Tournament: registers teams
- Menu and input → Tournament: reads teams
- Menu and input → Tournament: displays details
- Menu and input → Tournament: displays points
- Menu and input → Team roster: creates teams
- Menu and input → Team roster: adds players
- Menu and input → Player: creates players
- Menu and input → Coach: creates coaches
- Menu and input → Person base: displays details
- Menu and input → Coach: displays coach type
- Menu and input → Match result: creates match
- Menu and input → Scoring contract: enters scores
- Menu and input → Scoring contract: gets winner
- Tournament → Team roster: stores teams
- Team roster → Player: stores players
- Match result → Team roster: awards points
- Match result → Scoring contract: implements
- Player → Person base: extends
- Coach → Person base: extends
- Player → Sport type: uses sport
- Tournament → Sport type: uses sport
