Skip to content

kayanr/LibraryManagementSystemApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Library Management System

Java Spring Boot React MySQL

A full-stack Library Management System designed to manage books, members, and lending workflows through a scalable Spring Boot REST API and React frontend.

This application demonstrates real-world backend architecture, API design, and frontend integration using modern technologies.


πŸš€ Overview

The Library Management System enables librarians and administrators to efficiently manage:

  • Book inventory
  • Library members
  • Book lending and return workflows

The system follows a layered backend architecture and exposes RESTful APIs consumed by a React-based user interface.

This project highlights how modern applications integrate:

  • Client-side UI (React)
  • Backend REST APIs (Spring Boot REST API)
  • Persistent relational databases (MySQL)

πŸ“Œ Project Status

This project was created to practice full-stack development using React and Spring Boot.

It currently supports CRUD operations for:

  • πŸ“š Books
  • πŸ‘€ Members
  • πŸ”– Loans

The backend exposes REST endpoints which are consumed by the React frontend.

Interactive API documentation is also available through Swagger/OpenAPI.


πŸ“˜ Key Learning Areas

β€’ Building REST APIs using Spring Boot β€’ Implementing CRUD operations with Spring Data JPA β€’ Structuring a layered backend architecture (Controller β†’ Service β†’ Repository) β€’ Using DTOs to decouple API contracts from JPA entities β€’ Connecting a React frontend to backend APIs β€’ Building controlled forms with dynamic dropdowns in React β€’ Managing relational data using MySQL β€’ Documenting APIs using Swagger/OpenAPI


πŸ› οΈ Tech Stack

Frontend

  • React

Backend

  • Java
  • Spring Boot
  • Spring Data JPA
  • REST APIs
  • Swagger / OpenAPI

Database

  • MySQL

✨ Features

πŸ“š Book Management

The system provides complete CRUD functionality for managing books.

Users can:

β€’ Add new books to the library catalog
β€’ View all books
β€’ Update book information
β€’ Delete books from the system


πŸ‘€ Member Management

Library members can also be managed through the API.

Users can:

β€’ Register new members β€’ View all members β€’ Update member information β€’ Delete members


πŸ”– Loan Management

Books can be checked out to members and tracked through the system.

Users can:

β€’ Create a loan by selecting a book and a member β€’ View all active and past loans β€’ Update loan details including return date β€’ Delete a loan record


πŸ“‘ API Documentation

The backend includes Swagger/OpenAPI documentation.

After starting the backend server, open:


[http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)

or


[http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html)

Swagger allows you to:

  • View all API endpoints
  • Test requests directly from the browser
  • Inspect request and response models

πŸ—οΈ Project Architecture

The application is organized into three modules:

libraryms-app-data

Contains JPA entities and persistence logic.

libraryms-app-rest

Spring Boot REST API exposing endpoints for books and members.

libraryms-app-web

React frontend that communicates with the backend API.


βš™οΈ How to Run the Project

1️⃣ Clone the repository

git clone https://github.com/kayanr/LibraryManagementSystemApp.git

2️⃣ Setup MySQL

Create the database:

CREATE DATABASE libraryms_db;

Update database credentials in:

libraryms-app-rest/src/main/resources/application.properties

3️⃣ Start the Backend

cd libraryms-app-rest
mvn spring-boot:run

Backend runs at:

http://localhost:8080

4️⃣ Start the Frontend

cd libraryms-app-web
npm install
npm start

Frontend runs at:

http://localhost:3000

πŸ“· Screenshots


πŸ“š Future Improvements

Planned enhancements include:

β€’ Upgrade to react-scripts v5 and React 18 (removes Node 17+ OpenSSL workaround) β€’ Replace welcome page with a live stats dashboard β€’ Group navigation into entity dropdowns (Books / Members / Loans) β€’ Highlight overdue loans in the loan list β€’ Add global error handling via @ControllerAdvice β€’ Add member authentication and user roles β€’ Implement search and pagination β€’ Upgrade to react-router-dom v6 and react-bootstrap v2 β€’ Containerize the application using Docker β€’ Deploy the system to cloud infrastructure


About

Library Management System using Java, SpringBoot, React, MySQL and has the following: Frontend, Backend, and Database Read, Write, Edit, and Delete capabilities

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors