# harshavardhan3535/library-management-system architecture

> Architecture diagram of the GitHub repository harshavardhan3535/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/harshavardhan3535/library-management-system
- Repository: https://github.com/harshavardhan3535/library-management-system

## Overview

This is a Java web-based library management system for book and member records, book search, and loan issuance and returns. The main workflow runs from a browser through JSP forms to servlet handlers, which read or update domain records through Hibernate and PostgreSQL, then forward results to JSPs or redirect to another handler. Book CRUD partly uses BookDAO; sampled search and loan handlers access persistence directly. The tree and README establish additional member and listing features, but their handler implementations were not sampled, so their internal wiring is shown only at the documented layer boundary.

Main entry points: [`src/main/webapp/JSP`](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/webapp/JSP) (JSP screens), [`src/main/resources/META-INF/persistence.xml`](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/resources/META-INF/persistence.xml) (Hibernate ORM), [`src/main/java/com/library/library_management_system/servlet`](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet) (Book CRUD), [`src/main/java/com/library/library_management_system/servlet/SearchBookServlet.java`](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/SearchBookServlet.java) (Book search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Web interface"]
  node_home["Home page<br/>[index.jsp]"]
  node_jsp["JSP screens"]
end

subgraph group_requests["Library workflows"]
  node_bookcrud["Book CRUD"]
  node_search["Book search"]
  node_members["Member management"]
  node_issue["Issue loans"]
  node_return["Return loans"]
  node_loanviews["Loan listings"]
end

subgraph group_persistence["Persistence"]
  node_bookdao["Book DAO<br/>[BookDAO.java]"]
  node_basedao["DAO setup<br/>[BaseDAO.java]"]
  node_hibernate["Hibernate ORM<br/>[persistence.xml]"]
  node_postgres[("PostgreSQL")]
end

subgraph group_domain["Library domain"]
  node_entities["Library entities"]
  node_booktable[("Books<br/>[Book.java]")]
  node_membertable[("Members<br/>[Member.java]")]
  node_loantable[("Loans<br/>[Loan.java]")]
end

node_browser(("Librarian / browser"))

node_browser -->|"opens"| node_home
node_browser -->|"uses forms"| node_jsp
node_jsp -->|"submits book requests"| node_bookcrud
node_jsp -->|"submits search"| node_search
node_jsp -->|"submits member requests"| node_members
node_jsp -->|"submits issue request"| node_issue
node_jsp -->|"submits return request"| node_return
node_jsp -->|"requests listings"| node_loanviews
node_bookcrud -->|"forwards / redirects"| node_jsp
node_search -->|"forwards results"| node_jsp
node_members -->|"renders results"| node_jsp
node_issue -->|"forwards / redirects"| node_jsp
node_return -->|"forwards confirmation"| node_jsp
node_loanviews -->|"renders listings"| node_jsp
node_bookcrud -->|"saves / updates / finds"| node_bookdao
node_bookcrud -->|"loads author/category"| node_hibernate
node_search -->|"queries books"| node_hibernate
node_issue -->|"reads / persists loan"| node_hibernate
node_return -->|"reads / updates loan"| node_hibernate
node_members -->|"accesses member records"| node_hibernate
node_loanviews -->|"queries loans"| node_hibernate
node_bookdao -->|"creates entity managers"| node_basedao
node_basedao -->|"configures persistence"| node_hibernate
node_hibernate -->|"reads / writes"| node_postgres
node_bookcrud -->|"uses book records"| node_entities
node_issue -->|"uses book, member, loan"| node_entities
node_return -->|"updates loan and book"| node_entities
node_search -->|"returns books"| node_entities

click node_home "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/webapp/index.jsp"
click node_jsp "https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/webapp/JSP"
click node_bookcrud "https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet"
click node_search "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/SearchBookServlet.java"
click node_members "https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet"
click node_issue "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/IssueBookServlet.java"
click node_return "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/ReturnBookServlet.java"
click node_loanviews "https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet"
click node_bookdao "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/dao/BookDAO.java"
click node_basedao "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/dao/BaseDAO.java"
click node_hibernate "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/resources/META-INF/persistence.xml"
click node_entities "https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/entity"
click node_booktable "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/entity/Book.java"
click node_membertable "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/entity/Member.java"
click node_loantable "https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/entity/Loan.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_home,node_jsp,node_browser toneBlue
class node_bookcrud,node_search,node_members,node_issue,node_return,node_loanviews toneAmber
class node_bookdao,node_basedao,node_hibernate,node_postgres toneMint
class node_entities,node_booktable,node_membertable,node_loantable toneRose
```

## Components

### Web interface

- [Home page](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/webapp/index.jsp): `src/main/webapp/index.jsp`
- [JSP screens](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/webapp/JSP): `src/main/webapp/JSP`

### Library workflows

- [Book CRUD](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet): `src/main/java/com/library/library_management_system/servlet`
- [Book search](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/SearchBookServlet.java): `src/main/java/com/library/library_management_system/servlet/SearchBookServlet.java`
- [Member management](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet): `src/main/java/com/library/library_management_system/servlet`
- [Issue loans](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/IssueBookServlet.java): `src/main/java/com/library/library_management_system/servlet/IssueBookServlet.java`
- [Return loans](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/servlet/ReturnBookServlet.java): `src/main/java/com/library/library_management_system/servlet/ReturnBookServlet.java`
- [Loan listings](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/servlet): `src/main/java/com/library/library_management_system/servlet`

### Persistence

- [Book DAO](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/dao/BookDAO.java): `src/main/java/com/library/library_management_system/dao/BookDAO.java`
- [DAO setup](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/dao/BaseDAO.java): `src/main/java/com/library/library_management_system/dao/BaseDAO.java`
- [Hibernate ORM](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/resources/META-INF/persistence.xml): `src/main/resources/META-INF/persistence.xml`
- **PostgreSQL**

### Library domain

- [Library entities](https://github.com/harshavardhan3535/library-management-system/tree/main/src/main/java/com/library/library_management_system/entity): `src/main/java/com/library/library_management_system/entity`
- [Books](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/entity/Book.java): `src/main/java/com/library/library_management_system/entity/Book.java`
- [Members](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/entity/Member.java): `src/main/java/com/library/library_management_system/entity/Member.java`
- [Loans](https://github.com/harshavardhan3535/library-management-system/blob/main/src/main/java/com/library/library_management_system/entity/Loan.java): `src/main/java/com/library/library_management_system/entity/Loan.java`

### Other components

- **Librarian / browser**

## Connections

- Librarian / browser → Home page: opens
- Librarian / browser → JSP screens: uses forms
- JSP screens → Book CRUD: submits book requests
- JSP screens → Book search: submits search
- JSP screens → Member management: submits member requests
- JSP screens → Issue loans: submits issue request
- JSP screens → Return loans: submits return request
- JSP screens → Loan listings: requests listings
- Book CRUD → JSP screens: forwards / redirects
- Book search → JSP screens: forwards results
- Member management → JSP screens: renders results
- Issue loans → JSP screens: forwards / redirects
- Return loans → JSP screens: forwards confirmation
- Loan listings → JSP screens: renders listings
- Book CRUD → Book DAO: saves / updates / finds
- Book CRUD → Hibernate ORM: loads author/category
- Book search → Hibernate ORM: queries books
- Issue loans → Hibernate ORM: reads / persists loan
- Return loans → Hibernate ORM: reads / updates loan
- Member management → Hibernate ORM: accesses member records
- Loan listings → Hibernate ORM: queries loans
- Book DAO → DAO setup: creates entity managers
- DAO setup → Hibernate ORM: configures persistence
- Hibernate ORM → PostgreSQL: reads / writes
- Book CRUD → Library entities: uses book records
- Issue loans → Library entities: uses book, member, loan
- Return loans → Library entities: updates loan and book
- Book search → Library entities: returns books
