This project implements a comprehensive library management system to efficiently handle book management, patron management, and lending management tasks. Below are the detailed specifications and functionalities of the system.
-
Book:
- Fields:
- ID (Auto Increment)
- Title
- Author
- Genre
- Publication Date
- ISBN
- Relationships:
- Many-to-many with Author and Genre.
- Fields:
-
Author:
- Fields:
- ID (Auto Increment)
- Name
- Fields:
-
Genre:(enum)
-
Patron:
- Fields:
- Patron ID
- Name
- Registration Date
- Fields:
-
Lending:
- Fields:
- Lending ID
- Book ID
- Patron ID
- Date Borrowed
- Due Date
- Fields:
-
Book Management: \
-
GET:
- By Title:/book/title/{title}
- By Author:/book/author/{author}
- By Genre:/book/genre/{genre}
- All:/book
\ -
POST:
/book
\ -
PUT:
/book/{id}
\ -
DELETE:
/book/{id}
-
-
Author Management:\
-
GET:\
- All:
/author
\
- All:
-
POST:
/author
\ -
PUT:
/author/id
\ -
DELETE:
/author/id
-
-
Patron Management:\
-
GET:\
- By Id:
/patron/id
\ - All:
/patron
\
- By Id:
-
POST:
/patron
\ -
PUT:
/patron/{id}
\ -
DELETE:
/patron/{id}
-
-
Lending Management:\
-
GET:\
- By Id:
/lending
\ - By Patron ID:
/lending/patron/{patronId}
\ - By Book Title:
/lending/book/{bookTitle}
\ - By Lending Date:
/lending/lendingDate/{lendingdate}
\ - By Due Date:
/lending/dueDate/{dueDte}
\ - By Status:
/lending/status/{status}
\ - All:
/lending
\
- By Id:
-
POST:
/lending
\ -
PUT:
/lending/{id}
\ -
DELETE:
/lending/{id}
-
-
Book Management:
- CRUD operations for Books.
- Ability to search books by title, author, or genre.
-
Patron Management:
- CRUD operations for Patrons.
- List all books borrowed by a specific patron.
-
Lending Management:
- Check-out and check-in of books.
- View all active lendings.
- RESTful API: Implemented using Spring Boot framework to facilitate easy integration and communication with other systems.
- Database: Utilizes MySQL Database to store and manage data effectively.
- Cardinality Rules: Handled between models to ensure consistency and integrity of data relationships.
- ORM (Object-Relational Mapping): Utilizes Hibernate for seamless interaction between Java objects and relational database tables.
- Logging: Logging functionality is added for each CRUD operation to maintain an audit trail and facilitate debugging.
- Clone the Repository: Clone this repository to your local machine.
- Set Up Database: Create a MySQL database and configure the connection details in
application.properties
file. - Run the Application: Execute the Spring Boot application to start using the library management system.