# jordanneil14/footballmanagersimulator architecture

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

## Overview

FootballManagerSimulator is a console football-management game. The player creates or loads a manager and club, then manages club operations and advances through fixtures, matches, and competitions. The tree shows dedicated screens for tactics, transfers, scouting, finances, and match presentation; sampled competition services generate league and cup fixtures and reports, while the event manager validates and executes scheduled events against game state. Runtime wiring beyond the sampled entry point and manager-creation screen is not shown, so uncertain screen and service dispatch links are omitted.

Main entry points: [`FootballManagerSimulator/Models/StateModel.cs`](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/StateModel.cs) (Game state), [`FootballManagerSimulator/Screens/MenuScreens/CreateManagerScreen.cs`](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/MenuScreens/CreateManagerScreen.cs) (Manager setup), [`FootballManagerSimulator/Competitions/Services/EnglishPremierLeagueService.cs`](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Competitions/Services/EnglishPremierLeagueService.cs) (League fixtures), [`FootballManagerSimulator/Competitions/Services/EnglishLeagueCupService.cs`](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Competitions/Services/EnglishLeagueCupService.cs) (Cup fixtures)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Game runtime"]
  node_program["Program entry<br/>[Program.cs]"]
  node_game["Game loop<br/>[Game.cs]"]
  node_setup["Manager setup"]
  node_menus["Game menus"]
  node_creator["Game creator"]
end

subgraph group_management["Club management"]
  node_management_ui["Club operations"]
  node_tactics["Tactics<br/>[TacticsScreen.cs]"]
  node_transfers["Transfers"]
  node_scouting["Scouting<br/>[ScoutScreen.cs]"]
  node_finances["Club finances<br/>[FinancesScreen.cs]"]
end

subgraph group_football["Matches and competitions"]
  node_fixtures_ui["Fixture views<br/>[FixturesScreen.cs]"]
  node_match_ui["Match presentation<br/>[MatchScreen.cs]"]
  node_competition_services["Competition services"]
  node_league_service["League fixtures"]
  node_cup_service["Cup fixtures"]
end

subgraph group_state["Game state and events"]
  node_state_model["Game state<br/>[StateModel.cs]"]
  node_event_manager["Scheduled events<br/>[EventManager.cs]"]
  node_notifications["Notifications"]
end

node_player(("Player"))

node_player -->|"starts game"| node_program
node_program -->|"runs"| node_game
node_player -->|"enters manager name"| node_setup
node_setup -->|"sets manager name"| node_creator
node_setup -->|"updates screen stack"| node_state_model
node_event_manager -->|"reads and updates"| node_state_model
node_league_service -->|"reads competition data"| node_state_model
node_league_service -->|"creates report"| node_notifications
node_cup_service -->|"reads game data"| node_state_model
node_cup_service -->|"creates report"| node_notifications

click node_program "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Program.cs"
click node_game "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Game.cs"
click node_setup "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/MenuScreens/CreateManagerScreen.cs"
click node_menus "https://github.com/jordanneil14/footballmanagersimulator/tree/main/FootballManagerSimulator/Screens/MenuScreens"
click node_management_ui "https://github.com/jordanneil14/footballmanagersimulator/tree/main/FootballManagerSimulator/Screens"
click node_tactics "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/TacticsScreen.cs"
click node_transfers "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/TransferListScreen.cs"
click node_scouting "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/ScoutScreen.cs"
click node_finances "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/FinancesScreen.cs"
click node_fixtures_ui "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/FixturesScreen.cs"
click node_match_ui "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/MatchScreen.cs"
click node_competition_services "https://github.com/jordanneil14/footballmanagersimulator/tree/main/FootballManagerSimulator/Competitions/Services"
click node_league_service "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Competitions/Services/EnglishPremierLeagueService.cs"
click node_cup_service "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Competitions/Services/EnglishLeagueCupService.cs"
click node_state_model "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/StateModel.cs"
click node_event_manager "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Events/EventManager.cs"
click node_notifications "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/NotificationModel.cs"
click node_creator "https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/GameCreatorModel.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,node_game,node_setup,node_menus,node_creator toneBlue
class node_management_ui,node_tactics,node_transfers,node_scouting,node_finances toneAmber
class node_fixtures_ui,node_match_ui,node_competition_services,node_league_service,node_cup_service toneMint
class node_state_model,node_event_manager,node_notifications toneRose
class node_player toneIndigo
```

## Components

### Game runtime

- [Program entry](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Program.cs): `FootballManagerSimulator/Program.cs`
- [Game loop](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Game.cs): `FootballManagerSimulator/Game.cs`
- [Manager setup](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/MenuScreens/CreateManagerScreen.cs): `FootballManagerSimulator/Screens/MenuScreens/CreateManagerScreen.cs`
- [Game menus](https://github.com/jordanneil14/footballmanagersimulator/tree/main/FootballManagerSimulator/Screens/MenuScreens): `FootballManagerSimulator/Screens/MenuScreens`
- [Game creator](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/GameCreatorModel.cs): `FootballManagerSimulator/Models/GameCreatorModel.cs`

### Club management

- [Club operations](https://github.com/jordanneil14/footballmanagersimulator/tree/main/FootballManagerSimulator/Screens): `FootballManagerSimulator/Screens`
- [Tactics](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/TacticsScreen.cs): `FootballManagerSimulator/Screens/TacticsScreen.cs`
- [Transfers](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/TransferListScreen.cs): `FootballManagerSimulator/Screens/TransferListScreen.cs`
- [Scouting](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/ScoutScreen.cs): `FootballManagerSimulator/Screens/ScoutScreen.cs`
- [Club finances](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/FinancesScreen.cs): `FootballManagerSimulator/Screens/FinancesScreen.cs`

### Matches and competitions

- [Fixture views](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/FixturesScreen.cs): `FootballManagerSimulator/Screens/FixturesScreen.cs`
- [Match presentation](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Screens/MatchScreen.cs): `FootballManagerSimulator/Screens/MatchScreen.cs`
- [Competition services](https://github.com/jordanneil14/footballmanagersimulator/tree/main/FootballManagerSimulator/Competitions/Services): `FootballManagerSimulator/Competitions/Services`
- [League fixtures](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Competitions/Services/EnglishPremierLeagueService.cs): `FootballManagerSimulator/Competitions/Services/EnglishPremierLeagueService.cs`
- [Cup fixtures](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Competitions/Services/EnglishLeagueCupService.cs): `FootballManagerSimulator/Competitions/Services/EnglishLeagueCupService.cs`

### Game state and events

- [Game state](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/StateModel.cs): `FootballManagerSimulator/Models/StateModel.cs`
- [Scheduled events](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Events/EventManager.cs): `FootballManagerSimulator/Events/EventManager.cs`
- [Notifications](https://github.com/jordanneil14/footballmanagersimulator/blob/main/FootballManagerSimulator/Models/NotificationModel.cs): `FootballManagerSimulator/Models/NotificationModel.cs`

### Other components

- **Player**

## Connections

- Player → Program entry: starts game
- Program entry → Game loop: runs
- Player → Manager setup: enters manager name
- Manager setup → Game creator: sets manager name
- Manager setup → Game state: updates screen stack
- Scheduled events → Game state: reads and updates
- League fixtures → Game state: reads competition data
- League fixtures → Notifications: creates report
- Cup fixtures → Game state: reads game data
- Cup fixtures → Notifications: creates report
