# aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system
- Repository: https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system

## Overview

This is a console-based library management mini-project. A user selects menu actions in Main; it delegates catalog display, member display, and title search to Library, then directly invokes Book and Member loan operations. The model also represents librarian details and book categories. The in-memory catalog uses fixed-size arrays, not an external database. The graph follows the sampled src files and README; duplicate ZIP_CHECK sources appear to mirror them.

Main entry points: [`src/main/Main.java`](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/main/Main.java) (Menu and workflow), [`src/model/Book.java`](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Book.java) (Book and loan state), [`src/model/Member.java`](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Member.java) (Member and loan count), [`src/service/Library.java`](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/service/Library.java) (Catalog service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Console application"]
  node_main["Menu and workflow<br/>[Main.java]"]
end

subgraph group_service["Library operations"]
  node_library["Catalog service<br/>[Library.java]"]
end

subgraph group_model["Domain model"]
  node_book["Book and loan state<br/>[Book.java]"]
  node_member["Member and loan count<br/>[Member.java]"]
  node_librarian["Librarian details<br/>[Librarian.java]"]
  node_person["Person base class<br/>[Person.java]"]
  node_loanable["Loan interface<br/>[Loanable.java]"]
  node_category["Book categories<br/>[BookCategory.java]"]
end

node_user(("Console user"))

node_user -->|"chooses menu actions"| node_main
node_main -->|"adds and queries"| node_library
node_library -->|"stores and reads"| node_book
node_library -->|"stores and displays"| node_member
node_main -->|"issues, returns, counts"| node_book
node_main -->|"updates loan count"| node_member
node_main -->|"displays details"| node_librarian
node_book -->|"uses category"| node_category
node_book -->|"implements"| node_loanable
node_member -->|"implements"| node_loanable
node_member -->|"extends"| node_person
node_librarian -->|"extends"| node_person

click node_main "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/main/Main.java"
click node_library "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/service/Library.java"
click node_book "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Book.java"
click node_member "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Member.java"
click node_librarian "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Librarian.java"
click node_person "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Person.java"
click node_loanable "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Loanable.java"
click node_category "https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/BookCategory.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_main,node_user toneBlue
class node_library toneAmber
class node_book,node_member,node_librarian,node_person,node_loanable,node_category toneMint
```

## Components

### Console application

- [Menu and workflow](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/main/Main.java): `src/main/Main.java`

### Library operations

- [Catalog service](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/service/Library.java): `src/service/Library.java`

### Domain model

- [Book and loan state](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Book.java): `src/model/Book.java`
- [Member and loan count](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Member.java): `src/model/Member.java`
- [Librarian details](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Librarian.java): `src/model/Librarian.java`
- [Person base class](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Person.java): `src/model/Person.java`
- [Loan interface](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/Loanable.java): `src/model/Loanable.java`
- [Book categories](https://github.com/aishupapu2-pixel/r24sa002_aishwarya_j_library-management-system/blob/main/src/model/BookCategory.java): `src/model/BookCategory.java`

### Other components

- **Console user**

## Connections

- Console user → Menu and workflow: chooses menu actions
- Menu and workflow → Catalog service: adds and queries
- Catalog service → Book and loan state: stores and reads
- Catalog service → Member and loan count: stores and displays
- Menu and workflow → Book and loan state: issues, returns, counts
- Menu and workflow → Member and loan count: updates loan count
- Menu and workflow → Librarian details: displays details
- Book and loan state → Book categories: uses category
- Book and loan state → Loan interface: implements
- Member and loan count → Loan interface: implements
- Member and loan count → Person base class: extends
- Librarian details → Person base class: extends
