# demiankropyvnytskyishi2025-cpu/hakaton-team-hinata architecture

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

- Interactive diagram: https://gitdiagram.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata
- Repository: https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata

## Overview

This is a console mini-shop manager. A user chooses the admin or shopper menu, then performs catalogue operations; shopper purchases and product searches update the in-memory catalogue. Shared functions also provide category browsing and price/count queries. The sampled source supports these direct calls and shared-state accesses; the README gives no further product detail.

Main entry points: [`main.cpp`](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/main.cpp) (Program entry), [`admin_interface.cpp`](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/admin_interface.cpp) (Admin menu), [`user_interface.cpp`](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/user_interface.cpp) (Shopper menu), [`common_functions.cpp`](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/common_functions.cpp) (Browse and queries)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_main["Program entry<br/>[main.cpp]"]
end

subgraph group_admin["Admin operations"]
  node_admin_menu["Admin menu"]
  node_admin_ops["Admin functions"]
end

subgraph group_shopper["Shopper operations"]
  node_shopper_menu["Shopper menu<br/>[user_interface.cpp]"]
  node_shopper_ops["Purchase handler<br/>[user_functions.cpp]"]
end

subgraph group_catalog["Shared catalogue"]
  node_shared_ops["Browse and queries"]
  node_catalogue[("Product catalogue<br/>[PRODUCT_DATA.cpp]")]
end

node_operator(("Console user"))

node_operator -->|"selects role"| node_main
node_main -->|"dispatches admin"| node_admin_menu
node_main -->|"dispatches shopper"| node_shopper_menu
node_admin_menu -->|"calls admin actions"| node_admin_ops
node_admin_menu -->|"calls shared queries"| node_shared_ops
node_shopper_menu -->|"calls purchase"| node_shopper_ops
node_shopper_menu -->|"calls shared queries"| node_shared_ops
node_admin_ops -->|"reads and updates"| node_catalogue
node_shopper_ops -->|"reads and updates"| node_catalogue
node_shared_ops -->|"reads and updates"| node_catalogue

click node_main "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/main.cpp"
click node_admin_menu "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/admin_interface.cpp"
click node_admin_ops "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/admin_functions.cpp"
click node_shopper_menu "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/user_interface.cpp"
click node_shopper_ops "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/user_functions.cpp"
click node_shared_ops "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/common_functions.cpp"
click node_catalogue "https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/PRODUCT_DATA.cpp"

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_operator toneBlue
class node_admin_menu,node_admin_ops toneAmber
class node_shopper_menu,node_shopper_ops toneMint
class node_shared_ops,node_catalogue toneRose
```

## Components

### Application entry

- [Program entry](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/main.cpp): `main.cpp`

### Admin operations

- [Admin menu](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/admin_interface.cpp): `admin_interface.cpp`
- [Admin functions](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/admin_functions.cpp): `admin_functions.cpp`

### Shopper operations

- [Shopper menu](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/user_interface.cpp): `user_interface.cpp`
- [Purchase handler](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/user_functions.cpp): `user_functions.cpp`

### Shared catalogue

- [Browse and queries](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/common_functions.cpp): `common_functions.cpp`
- [Product catalogue](https://github.com/demiankropyvnytskyishi2025-cpu/hakaton-team-hinata/blob/main/PRODUCT_DATA.cpp): `PRODUCT_DATA.cpp`

### Other components

- **Console user**

## Connections

- Console user → Program entry: selects role
- Program entry → Admin menu: dispatches admin
- Program entry → Shopper menu: dispatches shopper
- Admin menu → Admin functions: calls admin actions
- Admin menu → Browse and queries: calls shared queries
- Shopper menu → Purchase handler: calls purchase
- Shopper menu → Browse and queries: calls shared queries
- Admin functions → Product catalogue: reads and updates
- Purchase handler → Product catalogue: reads and updates
- Browse and queries → Product catalogue: reads and updates
