# kolomarki08/shobu-hse-versenyrendszer architecture

> Architecture diagram of the GitHub repository kolomarki08/shobu-hse-versenyrendszer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kolomarki08/shobu-hse-versenyrendszer
- Repository: https://github.com/kolomarki08/shobu-hse-versenyrendszer

## Overview

TATAMI MASTER is a client–server karate tournament management system. Coaches register competitors; administrators configure tournaments, categories and tatamis; referees run Kata/Kumite matches; audiences follow live progress and results. The backend exposes REST APIs over an EF Core database and provides live arena synchronization through SignalR and SSE. The graph preserves the README’s major user-facing capabilities. Frontend module-to-page wiring is not shown in the supplied evidence, so those links are omitted; unsampled subsystems are represented only where README documents them.

Main entry points: [`Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs`](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs) (ASP.NET API), [`Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Models/AppDbContext.cs`](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Models/AppDbContext.cs) (EF data context), [`Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Services/LiveArenaStateService.cs`](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Services/LiveArenaStateService.cs) (Live state service), [`Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs`](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs) (Tournament management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web clients"]
  node_portal["Login and portal<br/>[index.html]"]
  node_authlogic["Authentication<br/>[auth.js]"]
  node_loginlogic["Login flow<br/>[login.js]"]
end

subgraph group_competition["Competition management"]
  node_adminui["Admin center<br/>[admin.html]"]
  node_admindata["Admin operations<br/>[admin_adatok.js]"]
  node_entryui["Coach registration<br/>[nevezes.html]"]
  node_categorylogic["Category workflows<br/>[core.js]"]
  node_drawlogic["Match draws<br/>[sorsolas.js]"]
  node_results["Results and awards<br/>[eredmenyek.html]"]
  node_tournaments["Tournament management"]
  node_registrations["Registration API"]
  node_categories["Category API"]
  node_competitors["Competitor API"]
  node_tatamis["Tatami API"]
end

subgraph group_arena["Arena and live"]
  node_refereeui["Referee console<br/>[biroi_panel.html]"]
  node_refereelogic["Match control<br/>[biroi_panel.js]"]
  node_kata["Kata scoring<br/>[KATA.js]"]
  node_kumite["Kumite scoring<br/>[KUMITE.js]"]
  node_liveclients["Live displays<br/>[audience.html]"]
  node_audiencelogic["Audience tracking<br/>[audience.js]"]
  node_tv["TV display<br/>[tv_kijelzo.html]"]
  node_tvlogic["TV updates<br/>[tv_kijelzo.js]"]
  node_matches["Match API"]
  node_liveapi["Live arena API"]
  node_livestate["Live state service"]
  node_hub["SignalR hub<br/>[LiveArenaHub.cs]"]
end

subgraph group_persistence["Backend and data"]
  node_api["ASP.NET API<br/>[Program.cs]"]
  node_dbcontext["EF data context<br/>[AppDbContext.cs]"]
  node_database[("MySQL database")]
end

node_coach(("Coach"))
node_admin(("Administrator"))
node_referee(("Referee"))
node_audience(("Audience"))

node_coach -->|"opens"| node_portal
node_admin -->|"manages"| node_adminui
node_coach -->|"registers"| node_entryui
node_referee -->|"controls"| node_refereeui
node_audience -->|"follows"| node_liveclients
node_admin -->|"publishes"| node_results
node_portal -->|"uses REST"| node_api
node_adminui -->|"uses REST"| node_api
node_entryui -->|"uses REST"| node_api
node_refereeui -->|"uses REST"| node_api
node_liveclients -->|"follows live"| node_api
node_results -->|"uses REST"| node_api
node_api -->|"configures"| node_dbcontext
node_api -->|"registers"| node_livestate
node_api -->|"maps hub"| node_hub
node_tournaments -->|"reads and writes"| node_dbcontext
node_tournaments -->|"resets state"| node_livestate
node_registrations -->|"reads and writes"| node_dbcontext
node_categories -->|"reads and writes"| node_dbcontext
node_competitors -->|"reads and writes"| node_dbcontext
node_matches -->|"reads and writes"| node_dbcontext
node_tatamis -->|"reads and writes"| node_dbcontext
node_liveapi -->|"delegates state"| node_livestate
node_livestate -->|"broadcasts events"| node_hub
node_dbcontext -.->|"persists entities"| node_database

click node_portal "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/index.html"
click node_authlogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/auth.js"
click node_loginlogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/login.js"
click node_adminui "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/admin.html"
click node_admindata "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/admin_adatok.js"
click node_entryui "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/nevezes.html"
click node_categorylogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/core.js"
click node_drawlogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/sorsolas.js"
click node_refereeui "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/biroi_panel.html"
click node_refereelogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/biroi_panel.js"
click node_kata "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/KATA.js"
click node_kumite "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/KUMITE.js"
click node_liveclients "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/audience.html"
click node_audiencelogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/audience.js"
click node_tv "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/tv_kijelzo.html"
click node_tvlogic "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/tv_kijelzo.js"
click node_results "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/eredmenyek.html"
click node_api "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs"
click node_tournaments "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs"
click node_registrations "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/RegistrationsController.cs"
click node_categories "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CategoriesController.cs"
click node_competitors "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CompetitorsController.cs"
click node_matches "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/MatchesController.cs"
click node_tatamis "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TatamisController.cs"
click node_liveapi "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/LiveArenaController.cs"
click node_livestate "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Services/LiveArenaStateService.cs"
click node_hub "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Hubs/LiveArenaHub.cs"
click node_dbcontext "https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Models/AppDbContext.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_portal,node_authlogic,node_loginlogic toneBlue
class node_adminui,node_admindata,node_entryui,node_categorylogic,node_drawlogic,node_results,node_tournaments,node_registrations,node_categories,node_competitors,node_tatamis toneAmber
class node_refereeui,node_refereelogic,node_kata,node_kumite,node_liveclients,node_audiencelogic,node_tv,node_tvlogic,node_matches,node_liveapi,node_livestate,node_hub toneMint
class node_api,node_dbcontext,node_database toneRose
class node_coach,node_admin,node_referee,node_audience toneIndigo
```

## Components

### Web clients

- [Login and portal](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/index.html): `index.html`
- [Authentication](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/auth.js): `JS/auth.js`
- [Login flow](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/login.js): `JS/login.js`

### Competition management

- [Admin center](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/admin.html): `views/admin.html`
- [Admin operations](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/admin_adatok.js): `JS/admin_adatok.js`
- [Coach registration](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/nevezes.html): `views/nevezes.html`
- [Category workflows](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/core.js): `JS/core.js`
- [Match draws](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/sorsolas.js): `JS/sorsolas.js`
- [Results and awards](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/eredmenyek.html): `views/eredmenyek.html`
- [Tournament management](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs`
- [Registration API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/RegistrationsController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/RegistrationsController.cs`
- [Category API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CategoriesController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CategoriesController.cs`
- [Competitor API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CompetitorsController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CompetitorsController.cs`
- [Tatami API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TatamisController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TatamisController.cs`

### Arena and live

- [Referee console](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/biroi_panel.html): `views/biroi_panel.html`
- [Match control](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/biroi_panel.js): `JS/biroi_panel.js`
- [Kata scoring](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/KATA.js): `JS/KATA.js`
- [Kumite scoring](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/KUMITE.js): `JS/KUMITE.js`
- [Live displays](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/audience.html): `views/audience.html`
- [Audience tracking](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/audience.js): `JS/audience.js`
- [TV display](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/views/tv_kijelzo.html): `views/tv_kijelzo.html`
- [TV updates](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/JS/tv_kijelzo.js): `JS/tv_kijelzo.js`
- [Match API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/MatchesController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/MatchesController.cs`
- [Live arena API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/LiveArenaController.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/LiveArenaController.cs`
- [Live state service](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Services/LiveArenaStateService.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Services/LiveArenaStateService.cs`
- [SignalR hub](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Hubs/LiveArenaHub.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Hubs/LiveArenaHub.cs`

### Backend and data

- [ASP.NET API](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs`
- [EF data context](https://github.com/kolomarki08/shobu-hse-versenyrendszer/blob/main/Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Models/AppDbContext.cs): `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Models/AppDbContext.cs`
- **MySQL database**

### Other components

- **Coach**
- **Administrator**
- **Referee**
- **Audience**

## Connections

- Coach → Login and portal: opens (evidence: `README.md`)
- Administrator → Admin center: manages (evidence: `README.md`)
- Coach → Coach registration: registers (evidence: `README.md`)
- Referee → Referee console: controls (evidence: `README.md`)
- Audience → Live displays: follows (evidence: `README.md`)
- Administrator → Results and awards: publishes (evidence: `README.md`)
- Login and portal → ASP.NET API: uses REST (evidence: `README.md`)
- Admin center → ASP.NET API: uses REST (evidence: `README.md`)
- Coach registration → ASP.NET API: uses REST (evidence: `README.md`)
- Referee console → ASP.NET API: uses REST (evidence: `README.md`)
- Live displays → ASP.NET API: follows live (evidence: `README.md`)
- Results and awards → ASP.NET API: uses REST (evidence: `README.md`)
- ASP.NET API → EF data context: configures (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs`)
- ASP.NET API → Live state service: registers (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs`)
- ASP.NET API → SignalR hub: maps hub (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Program.cs`)
- Tournament management → EF data context: reads and writes (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs`)
- Tournament management → Live state service: resets state (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TournamentsController.cs`)
- Registration API → EF data context: reads and writes (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/RegistrationsController.cs`)
- Category API → EF data context: reads and writes (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CategoriesController.cs`)
- Competitor API → EF data context: reads and writes (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/CompetitorsController.cs`)
- Match API → EF data context: reads and writes (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/MatchesController.cs`)
- Tatami API → EF data context: reads and writes (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/TatamisController.cs`)
- Live arena API → Live state service: delegates state (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Controllers/LiveArenaController.cs`)
- Live state service → SignalR hub: broadcasts events (evidence: `Backend/Versenyrendszer_Projekt/Versenyrendszer/Versenyrendszer/Services/LiveArenaStateService.cs`)
- EF data context → MySQL database: persists entities
