# pig23hub/mci architecture

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

- Interactive diagram: https://gitdiagram.com/pig23hub/mci
- Repository: https://github.com/pig23hub/mci

## Overview

The primary product workflow is a multipart CSV import: a client supplies a file and column indexes, the API delegates calculation to the CSV service, and the API returns rows with totals and VAT totals. The web module also exposes a number-sum endpoint; the separate core module contains standalone number-summing classes. Source excerpts show CSV processing and API behavior, but not the static page’s wiring, so no browser-to-page interaction is asserted.

Main entry points: [`web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberController.java`](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberController.java) (API controller), [`web/src/main/java/com/posco/mci/myBigNumber/CsvImportService.java`](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/CsvImportService.java) (CSV processor), [`web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberDTO.java`](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberDTO.java) (Sum request DTO), [`web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberApplication.java`](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberApplication.java) (Spring application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web_api["Web API"]
  node_application["Spring application"]
  node_controller["API controller"]
  node_sum_request["Sum request DTO"]
end

subgraph group_csv_processing["CSV Processing"]
  node_csv_service["CSV processor"]
  node_csv_result["CSV result"]
end

subgraph group_number_sum["Number Sum"]
  node_core_big_number["Big number demo<br/>[MyBigNumber.java]"]
  node_scratch_handler["Signed sum"]
end

node_client(("API client"))

node_application -->|"starts app"| node_controller
node_client -->|"submits CSV"| node_controller
node_controller -->|"processes CSV"| node_csv_service
node_csv_service -->|"creates rows"| node_csv_result
node_controller -->|"returns result"| node_client
node_client -->|"posts sum"| node_controller
node_client -->|"sends fields"| node_sum_request
node_controller -->|"reads request"| node_sum_request

click node_application "https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberApplication.java"
click node_controller "https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberController.java"
click node_sum_request "https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberDTO.java"
click node_csv_service "https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/CsvImportService.java"
click node_csv_result "https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/CsvImportResult.java"
click node_core_big_number "https://github.com/pig23hub/mci/blob/main/core/src/myClass/MyBigNumber.java"
click node_scratch_handler "https://github.com/pig23hub/mci/blob/main/core/src/myClass/ScratchHandler.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_application,node_controller,node_sum_request,node_client toneBlue
class node_csv_service,node_csv_result toneAmber
class node_core_big_number,node_scratch_handler toneMint
```

## Components

### Web API

- [Spring application](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberApplication.java): `web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberApplication.java`
- [API controller](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberController.java): `web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberController.java`
- [Sum request DTO](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberDTO.java): `web/src/main/java/com/posco/mci/myBigNumber/MyBigNumberDTO.java`

### CSV Processing

- [CSV processor](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/CsvImportService.java): `web/src/main/java/com/posco/mci/myBigNumber/CsvImportService.java`
- [CSV result](https://github.com/pig23hub/mci/blob/main/web/src/main/java/com/posco/mci/myBigNumber/CsvImportResult.java): `web/src/main/java/com/posco/mci/myBigNumber/CsvImportResult.java`

### Number Sum

- [Big number demo](https://github.com/pig23hub/mci/blob/main/core/src/myClass/MyBigNumber.java): `core/src/myClass/MyBigNumber.java`
- [Signed sum](https://github.com/pig23hub/mci/blob/main/core/src/myClass/ScratchHandler.java): `core/src/myClass/ScratchHandler.java`

### Other components

- **API client**

## Connections

- Spring application → API controller: starts app
- API client → API controller: submits CSV
- API controller → CSV processor: processes CSV
- CSV processor → CSV result: creates rows
- API controller → API client: returns result
- API client → API controller: posts sum
- API client → Sum request DTO: sends fields
- API controller → Sum request DTO: reads request
