# umikaia/stepitfinalproject architecture

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

- Interactive diagram: https://gitdiagram.com/umikaia/stepitfinalproject
- Repository: https://github.com/umikaia/stepitfinalproject

## Overview

This is an ASP.NET library-management API, but the supplied implementation evidence centers on author CRUD: a client request reaches the authors controller, which delegates to the author service, queries or changes EF Core state, and returns an API response. The repository also defines library entities for books, genres, users, cards, and borrowing, though no corresponding runtime workflows are shown. The graph preserves those domain capabilities without implying unverified endpoints; source-index references support some wiring, while unsampled implementation details are omitted.

Main entry points: [`StepITFinalProject/Services/Implementations/AuthorService.cs`](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Services/Implementations/AuthorService.cs) (Author service), [`StepITFinalProject/Controllers/AuthorsController.cs`](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Controllers/AuthorsController.cs) (Authors controller), [`StepITFinalProject/Data/Baza.cs`](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Data/Baza.cs) (EF Core context), [`StepITFinalProject/Requests`](https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Requests) (Author requests)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API surface"]
  node_authors_controller["Authors controller"]
  node_author_requests["Author requests"]
  node_author_responses["Author responses"]
  node_api_response["API envelope<br/>[ApiResponse.cs]"]
end

subgraph group_author["Author services"]
  node_author_service["Author service<br/>[AuthorService.cs]"]
  node_author_contract["Author service contract<br/>[IAuthorService.cs]"]
  node_author_mapping["Author mapping<br/>[AuthorProfile.cs]"]
  node_author_validation["Author validation"]
end

subgraph group_domain["Library domain"]
  node_library_entities["Library entities"]
  node_role_policy["Roles and authorization"]
  node_roles["Role values<br/>[Roles.cs]"]
end

subgraph group_runtime["Runtime infrastructure"]
  node_library_context["EF Core context<br/>[Baza.cs]"]
  node_sql_database[("Library database")]
  node_application_startup["Application startup<br/>[Program.cs]"]
end

node_client(("API client"))

node_client -->|"sends requests"| node_authors_controller
node_authors_controller -->|"delegates operations"| node_author_service
node_authors_controller -->|"accepts input"| node_author_requests
node_authors_controller -->|"returns results"| node_author_responses
node_authors_controller -->|"wraps results"| node_api_response
node_author_service -->|"implements"| node_author_contract
node_author_service -->|"queries and saves"| node_library_context
node_author_service -->|"maps entities"| node_author_mapping
node_author_service -->|"consumes input"| node_author_requests
node_author_service -->|"creates output"| node_author_responses
node_author_service -->|"builds envelope"| node_api_response
node_author_validation -->|"validates"| node_author_requests
node_library_context -->|"exposes sets"| node_library_entities
node_library_context -->|"uses SQL Server"| node_sql_database
node_application_startup -->|"configures"| node_library_context
node_application_startup -->|"registers"| node_author_service
node_role_policy -->|"uses role values"| node_roles

click node_authors_controller "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Controllers/AuthorsController.cs"
click node_author_requests "https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Requests"
click node_author_responses "https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Responses"
click node_api_response "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Common/ApiResponse.cs"
click node_author_service "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Services/Implementations/AuthorService.cs"
click node_author_contract "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Services/Interfaces/IAuthorService.cs"
click node_author_mapping "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Profiles/AuthorProfile.cs"
click node_author_validation "https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Validators"
click node_library_entities "https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Models"
click node_role_policy "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Attributes/AuthorizedRolesAttribute.cs"
click node_roles "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Enums/Roles.cs"
click node_library_context "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Data/Baza.cs"
click node_application_startup "https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Program.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_authors_controller,node_author_requests,node_author_responses,node_api_response,node_client toneBlue
class node_author_service,node_author_contract,node_author_mapping,node_author_validation toneAmber
class node_library_entities,node_role_policy,node_roles toneMint
class node_library_context,node_sql_database,node_application_startup toneRose
```

## Components

### API surface

- [Authors controller](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Controllers/AuthorsController.cs): `StepITFinalProject/Controllers/AuthorsController.cs`
- [Author requests](https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Requests): `StepITFinalProject/Requests`
- [Author responses](https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Responses): `StepITFinalProject/Responses`
- [API envelope](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Common/ApiResponse.cs): `StepITFinalProject/Common/ApiResponse.cs`

### Author services

- [Author service](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Services/Implementations/AuthorService.cs): `StepITFinalProject/Services/Implementations/AuthorService.cs`
- [Author service contract](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Services/Interfaces/IAuthorService.cs): `StepITFinalProject/Services/Interfaces/IAuthorService.cs`
- [Author mapping](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Profiles/AuthorProfile.cs): `StepITFinalProject/Profiles/AuthorProfile.cs`
- [Author validation](https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Validators): `StepITFinalProject/Validators`

### Library domain

- [Library entities](https://github.com/umikaia/stepitfinalproject/tree/master/StepITFinalProject/Models): `StepITFinalProject/Models`
- [Roles and authorization](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Attributes/AuthorizedRolesAttribute.cs): `StepITFinalProject/Attributes/AuthorizedRolesAttribute.cs`
- [Role values](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Enums/Roles.cs): `StepITFinalProject/Enums/Roles.cs`

### Runtime infrastructure

- [EF Core context](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Data/Baza.cs): `StepITFinalProject/Data/Baza.cs`
- **Library database**
- [Application startup](https://github.com/umikaia/stepitfinalproject/blob/master/StepITFinalProject/Program.cs): `StepITFinalProject/Program.cs`

### Other components

- **API client**

## Connections

- API client → Authors controller: sends requests (evidence: `StepITFinalProject/Controllers/AuthorsController.cs`)
- Authors controller → Author service: delegates operations (evidence: `StepITFinalProject/Controllers/AuthorsController.cs`)
- Authors controller → Author requests: accepts input (evidence: `StepITFinalProject/Controllers/AuthorsController.cs`)
- Authors controller → Author responses: returns results (evidence: `StepITFinalProject/Controllers/AuthorsController.cs`)
- Authors controller → API envelope: wraps results (evidence: `StepITFinalProject/Controllers/AuthorsController.cs`)
- Author service → Author service contract: implements (evidence: `StepITFinalProject/Services/Implementations/AuthorService.cs`)
- Author service → EF Core context: queries and saves (evidence: `StepITFinalProject/Services/Implementations/AuthorService.cs`)
- Author service → Author mapping: maps entities (evidence: `StepITFinalProject/Profiles/AuthorProfile.cs`)
- Author service → Author requests: consumes input (evidence: `StepITFinalProject/Services/Implementations/AuthorService.cs`)
- Author service → Author responses: creates output (evidence: `StepITFinalProject/Services/Implementations/AuthorService.cs`)
- Author service → API envelope: builds envelope (evidence: `StepITFinalProject/Services/Implementations/AuthorService.cs`)
- Author validation → Author requests: validates (evidence: `StepITFinalProject/Validators/CreateAuthorRequestValidator.cs`)
- EF Core context → Library entities: exposes sets (evidence: `StepITFinalProject/Data/Baza.cs`)
- EF Core context → Library database: uses SQL Server (evidence: `StepITFinalProject/Data/Baza.cs`)
- Application startup → EF Core context: configures (evidence: `StepITFinalProject/Program.cs`)
- Application startup → Author service: registers (evidence: `StepITFinalProject/Program.cs`)
- Roles and authorization → Role values: uses role values (evidence: `StepITFinalProject/Attributes/AuthorizedRolesAttribute.cs`)
