# lindaabytyqi/labapp architecture

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

- Interactive diagram: https://gitdiagram.com/lindaabytyqi/labapp
- Repository: https://github.com/lindaabytyqi/labapp

## Overview

The Online Library System is a React client and ASP.NET Core API for browsing and ordering books, managing a catalog, and handling orders by role. The main user flow is book discovery, cart and checkout, then order history or confirmation; administrators maintain catalog data, while coordinators manage orders. The backend separates controllers, application services, domain models, and Entity Framework persistence. The README documents the capabilities, but many UI components and service implementations were not sampled, so uncertain client-to-API connections are shown as unverified.

Main entry points: [`Infrastructure/Data/AppDbContext.cs`](https://github.com/lindaabytyqi/labapp/blob/master/Infrastructure/Data/AppDbContext.cs) (SQL database), [`AppProject/Program.cs`](https://github.com/lindaabytyqi/labapp/blob/master/AppProject/Program.cs) (API startup), [`front/src/App.tsx`](https://github.com/lindaabytyqi/labapp/blob/master/front/src/App.tsx) (Route application), [`front/src/Services/BookService.ts`](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Services/BookService.ts) (API client services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Route application<br/>[App.tsx]"]
  node_book_ui["Book browsing"]
  node_cart_ui["Cart and checkout<br/>[CartPage.tsx]"]
  node_orders_ui["Order views<br/>[OrderTable.tsx]"]
  node_auth_ui["Sign in and register<br/>[Login.tsx]"]
  node_admin_ui["Catalog management<br/>[BookTable.tsx]"]
  node_coord_ui["Order coordination"]
  node_web_services["API client services<br/>[BookService.ts]"]
end

subgraph group_api["API and application"]
  node_controllers["API controllers<br/>[BookController.cs]"]
  node_book_service["Book service<br/>[BookService.cs]"]
  node_author_service["Author service<br/>[AuthorService.cs]"]
  node_user_service["User and authentication<br/>[UserService.cs]"]
  node_cart_service["Cart service<br/>[CartService.cs]"]
  node_order_service["Order service<br/>[OrderService.cs]"]
  node_startup["API startup<br/>[Program.cs]"]
end

subgraph group_domain["Domain model"]
  node_catalog_models["Catalog domain<br/>[Book.cs]"]
  node_commerce_models["Cart and order domain<br/>[Order.cs]"]
  node_identity_models["User and roles<br/>[User.cs]"]
  node_api_models["API models<br/>[BookModel.cs]"]
end

subgraph group_persistence["Persistence and security"]
  node_database[("SQL database<br/>[AppDbContext.cs]")]
  node_authorization["Authorization manager"]
end

node_reader(("Reader"))
node_administrator(("Administrator"))
node_coordinator(("Coordinator"))

node_reader -->|"uses"| node_app
node_administrator -->|"manages catalog"| node_admin_ui
node_coordinator -->|"manages orders"| node_coord_ui
node_app -->|"routes to"| node_book_ui
node_app -->|"routes to"| node_cart_ui
node_app -->|"routes to"| node_orders_ui
node_app -->|"routes to"| node_auth_ui
node_app -->|"routes to"| node_admin_ui
node_app -->|"routes to"| node_coord_ui
node_book_ui -.->|"uses API"| node_web_services
node_cart_ui -.->|"uses API"| node_web_services
node_orders_ui -.->|"uses API"| node_web_services
node_auth_ui -.->|"uses API"| node_web_services
node_admin_ui -.->|"uses API"| node_web_services
node_coord_ui -.->|"uses API"| node_web_services
node_web_services -.->|"calls REST"| node_controllers
node_controllers -->|"delegates to"| node_book_service
node_controllers -.->|"delegates to"| node_author_service
node_controllers -->|"delegates to"| node_user_service
node_controllers -.->|"delegates to"| node_cart_service
node_controllers -.->|"delegates to"| node_order_service
node_book_service -->|"queries and saves"| node_database
node_author_service -->|"queries and saves"| node_database
node_user_service -->|"reads users"| node_database
node_cart_service -.->|"persists cart"| node_database
node_order_service -.->|"persists orders"| node_database
node_database -->|"maps entities"| node_catalog_models
node_database -->|"maps entities"| node_commerce_models
node_database -->|"maps entities"| node_identity_models
node_book_service -->|"uses models"| node_api_models
node_startup -->|"configures"| node_database
node_startup -->|"registers"| node_book_service
node_startup -->|"registers"| node_author_service
node_startup -->|"registers"| node_user_service
node_startup -->|"registers"| node_cart_service
node_startup -->|"registers"| node_order_service
node_startup -->|"registers"| node_authorization
node_catalog_models -->|"links books and authors"| node_catalog_models

click node_app "https://github.com/lindaabytyqi/labapp/blob/master/front/src/App.tsx"
click node_book_ui "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/BookDetailsPage.tsx"
click node_cart_ui "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/CartPage.tsx"
click node_orders_ui "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/OrderTable.tsx"
click node_auth_ui "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/Login.tsx"
click node_admin_ui "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/BookTable.tsx"
click node_coord_ui "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/CoordinatorDashboard.tsx"
click node_web_services "https://github.com/lindaabytyqi/labapp/blob/master/front/src/Services/BookService.ts"
click node_controllers "https://github.com/lindaabytyqi/labapp/blob/master/AppProject/Controllers/BookController.cs"
click node_book_service "https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/BookService.cs"
click node_author_service "https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/AuthorService.cs"
click node_user_service "https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/UserService.cs"
click node_cart_service "https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/CartService.cs"
click node_order_service "https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/OrderService.cs"
click node_catalog_models "https://github.com/lindaabytyqi/labapp/blob/master/Domain/Entities/Book.cs"
click node_commerce_models "https://github.com/lindaabytyqi/labapp/blob/master/Domain/Entities/Order.cs"
click node_identity_models "https://github.com/lindaabytyqi/labapp/blob/master/Domain/Entities/User.cs"
click node_api_models "https://github.com/lindaabytyqi/labapp/blob/master/Domain/Model/BookModel.cs"
click node_database "https://github.com/lindaabytyqi/labapp/blob/master/Infrastructure/Data/AppDbContext.cs"
click node_startup "https://github.com/lindaabytyqi/labapp/blob/master/AppProject/Program.cs"
click node_authorization "https://github.com/lindaabytyqi/labapp/blob/master/Infrastructure/Security/AuthorizationManager.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_app,node_book_ui,node_cart_ui,node_orders_ui,node_auth_ui,node_admin_ui,node_coord_ui,node_web_services toneBlue
class node_controllers,node_book_service,node_author_service,node_user_service,node_cart_service,node_order_service,node_startup toneAmber
class node_catalog_models,node_commerce_models,node_identity_models,node_api_models toneMint
class node_database,node_authorization toneRose
class node_reader,node_administrator,node_coordinator toneIndigo
```

## Components

### Web client

- [Route application](https://github.com/lindaabytyqi/labapp/blob/master/front/src/App.tsx): `front/src/App.tsx`
- [Book browsing](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/BookDetailsPage.tsx): `front/src/Components/BookDetailsPage.tsx`
- [Cart and checkout](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/CartPage.tsx): `front/src/Components/CartPage.tsx`
- [Order views](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/OrderTable.tsx): `front/src/Components/OrderTable.tsx`
- [Sign in and register](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/Login.tsx): `front/src/Components/Login.tsx`
- [Catalog management](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/BookTable.tsx): `front/src/Components/BookTable.tsx`
- [Order coordination](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Components/CoordinatorDashboard.tsx): `front/src/Components/CoordinatorDashboard.tsx`
- [API client services](https://github.com/lindaabytyqi/labapp/blob/master/front/src/Services/BookService.ts): `front/src/Services/BookService.ts`

### API and application

- [API controllers](https://github.com/lindaabytyqi/labapp/blob/master/AppProject/Controllers/BookController.cs): `AppProject/Controllers/BookController.cs`
- [Book service](https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/BookService.cs): `Application/Services/BookService.cs`
- [Author service](https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/AuthorService.cs): `Application/Services/AuthorService.cs`
- [User and authentication](https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/UserService.cs): `Application/Services/UserService.cs`
- [Cart service](https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/CartService.cs): `Application/Services/CartService.cs`
- [Order service](https://github.com/lindaabytyqi/labapp/blob/master/Application/Services/OrderService.cs): `Application/Services/OrderService.cs`
- [API startup](https://github.com/lindaabytyqi/labapp/blob/master/AppProject/Program.cs): `AppProject/Program.cs`

### Domain model

- [Catalog domain](https://github.com/lindaabytyqi/labapp/blob/master/Domain/Entities/Book.cs): `Domain/Entities/Book.cs`
- [Cart and order domain](https://github.com/lindaabytyqi/labapp/blob/master/Domain/Entities/Order.cs): `Domain/Entities/Order.cs`
- [User and roles](https://github.com/lindaabytyqi/labapp/blob/master/Domain/Entities/User.cs): `Domain/Entities/User.cs`
- [API models](https://github.com/lindaabytyqi/labapp/blob/master/Domain/Model/BookModel.cs): `Domain/Model/BookModel.cs`

### Persistence and security

- [SQL database](https://github.com/lindaabytyqi/labapp/blob/master/Infrastructure/Data/AppDbContext.cs): `Infrastructure/Data/AppDbContext.cs`
- [Authorization manager](https://github.com/lindaabytyqi/labapp/blob/master/Infrastructure/Security/AuthorizationManager.cs): `Infrastructure/Security/AuthorizationManager.cs`

### Other components

- **Reader**
- **Administrator**
- **Coordinator**

## Connections

- Reader → Route application: uses
- Administrator → Catalog management: manages catalog
- Coordinator → Order coordination: manages orders
- Route application → Book browsing: routes to (evidence: `front/src/App.tsx`)
- Route application → Cart and checkout: routes to (evidence: `front/src/App.tsx`)
- Route application → Order views: routes to (evidence: `front/src/App.tsx`)
- Route application → Sign in and register: routes to (evidence: `front/src/App.tsx`)
- Route application → Catalog management: routes to (evidence: `front/src/App.tsx`)
- Route application → Order coordination: routes to (evidence: `front/src/App.tsx`)
- Book browsing → API client services: uses API
- Cart and checkout → API client services: uses API
- Order views → API client services: uses API
- Sign in and register → API client services: uses API
- Catalog management → API client services: uses API
- Order coordination → API client services: uses API
- API client services → API controllers: calls REST
- API controllers → Book service: delegates to (evidence: `AppProject/Controllers/BookController.cs`)
- API controllers → Author service: delegates to
- API controllers → User and authentication: delegates to
- API controllers → Cart service: delegates to
- API controllers → Order service: delegates to
- Book service → SQL database: queries and saves (evidence: `Application/Services/BookService.cs`)
- Author service → SQL database: queries and saves (evidence: `Application/Services/AuthorService.cs`)
- User and authentication → SQL database: reads users (evidence: `Application/Services/UserService.cs`)
- Cart service → SQL database: persists cart
- Order service → SQL database: persists orders
- SQL database → Catalog domain: maps entities (evidence: `Infrastructure/Data/AppDbContext.cs`)
- SQL database → Cart and order domain: maps entities (evidence: `Infrastructure/Data/AppDbContext.cs`)
- SQL database → User and roles: maps entities (evidence: `Infrastructure/Data/AppDbContext.cs`)
- Book service → API models: uses models (evidence: `Application/Services/BookService.cs`)
- API startup → SQL database: configures (evidence: `AppProject/Program.cs`)
- API startup → Book service: registers (evidence: `AppProject/Program.cs`)
- API startup → Author service: registers (evidence: `AppProject/Program.cs`)
- API startup → User and authentication: registers (evidence: `AppProject/Program.cs`)
- API startup → Cart service: registers (evidence: `AppProject/Program.cs`)
- API startup → Order service: registers (evidence: `AppProject/Program.cs`)
- API startup → Authorization manager: registers (evidence: `AppProject/Program.cs`)
- Catalog domain → Catalog domain: links books and authors (evidence: `Domain/Entities/Book.cs`)
