# josegilson28ads07/poo architecture

> Architecture diagram of the GitHub repository josegilson28ads07/poo, 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/josegilson28ads07/poo
- Repository: https://github.com/josegilson28ads07/poo

## Overview

This is a small Java console application for demonstrating object-oriented modeling of football teams. The user interacts through TstPes, which reads menu choices and data, manages an in-memory collection of Times, and displays results. The domain model covers common team data, titles and rivals, plus club and national-team details. Times delegates nickname and title data to Apelido and Titulos. The README provides no useful capability detail, and TstPes excerpts are partial, so the graph omits uncertain menu wiring.

Main entry points: [`TstPes.java`](https://github.com/josegilson28ads07/poo/blob/main/TstPes.java) (Menu and workflow), [`Times.java`](https://github.com/josegilson28ads07/poo/blob/main/Times.java) (Team entity), [`Clube.java`](https://github.com/josegilson28ads07/poo/blob/main/Clube.java) (Club), [`SelecaoNacional.java`](https://github.com/josegilson28ads07/poo/blob/main/SelecaoNacional.java) (National team)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_console["Console interaction"]
  node_app["Menu and workflow<br/>[TstPes.java]"]
  node_input["Keyboard input<br/>[Leitura.java]"]
end

subgraph group_team_model["Team model"]
  node_times["Team entity<br/>[Times.java]"]
  node_nickname["Nickname<br/>[Apelido.java]"]
  node_titles["Titles<br/>[Titulos.java]"]
end

subgraph group_team_details["Specializations"]
  node_club["Club<br/>[Clube.java]"]
  node_national["National team"]
end

node_user(("User"))

node_user -->|"chooses and supplies data"| node_app
node_app -->|"displays results"| node_user
node_app -->|"reads input"| node_input
node_app -->|"manages team collection"| node_times
node_app -->|"creates and queries"| node_club
node_app -->|"creates and queries"| node_national
node_times -->|"delegates nickname"| node_nickname
node_times -->|"creates and stores"| node_titles
node_club -->|"extends"| node_times
node_national -->|"extends"| node_times

click node_app "https://github.com/josegilson28ads07/poo/blob/main/TstPes.java"
click node_input "https://github.com/josegilson28ads07/poo/blob/main/Leitura.java"
click node_times "https://github.com/josegilson28ads07/poo/blob/main/Times.java"
click node_nickname "https://github.com/josegilson28ads07/poo/blob/main/Apelido.java"
click node_titles "https://github.com/josegilson28ads07/poo/blob/main/Titulos.java"
click node_club "https://github.com/josegilson28ads07/poo/blob/main/Clube.java"
click node_national "https://github.com/josegilson28ads07/poo/blob/main/SelecaoNacional.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_app,node_input,node_user toneBlue
class node_times,node_nickname,node_titles toneAmber
class node_club,node_national toneMint
```

## Components

### Console interaction

- [Menu and workflow](https://github.com/josegilson28ads07/poo/blob/main/TstPes.java): `TstPes.java`
- [Keyboard input](https://github.com/josegilson28ads07/poo/blob/main/Leitura.java): `Leitura.java`

### Team model

- [Team entity](https://github.com/josegilson28ads07/poo/blob/main/Times.java): `Times.java`
- [Nickname](https://github.com/josegilson28ads07/poo/blob/main/Apelido.java): `Apelido.java`
- [Titles](https://github.com/josegilson28ads07/poo/blob/main/Titulos.java): `Titulos.java`

### Specializations

- [Club](https://github.com/josegilson28ads07/poo/blob/main/Clube.java): `Clube.java`
- [National team](https://github.com/josegilson28ads07/poo/blob/main/SelecaoNacional.java): `SelecaoNacional.java`

### Other components

- **User**

## Connections

- User → Menu and workflow: chooses and supplies data
- Menu and workflow → User: displays results
- Menu and workflow → Keyboard input: reads input
- Menu and workflow → Team entity: manages team collection
- Menu and workflow → Club: creates and queries
- Menu and workflow → National team: creates and queries
- Team entity → Nickname: delegates nickname
- Team entity → Titles: creates and stores
- Club → Team entity: extends
- National team → Team entity: extends
