This project is an advanced library management system designed to streamline library operations, including book search, reservations, user management, and more. The backend is built using Spring Boot, and the frontend is developed with React. Below is an overview of the project structure, features, and setup instructions.
- Project Overview
- Features
- Technologies Used
- Backend (Spring Boot)
- Frontend (React)
- Database
- Setup Instructions
- Contributing
- License
The Advanced Library Management System is a web application that provides functionalities for both library users and librarians. It allows users to search for books, view details, and reserve books online. Librarians can manage books, users, and track borrowings and returns.
- Search for books by title, author, category, or availability.
- View book details (summary, author, available copies).
- Reserve books online.
- Add, update, and delete books in the library.
- Manage users (register, delete).
- Track book borrowings and returns.
- Book reservation with time limits.
- Notifications for overdue books.
- Secure authentication and role-based access control.
- Dependencies:
- Spring Security
- Spring Web
- Lombok
- Spring Data JPA
- MySQL Connector/J
- Spring DevTools
- Dependencies:
- React Router DOM
- Redux Toolkit
- React Redux
- Axios
- MySQL
The backend is built using Spring Boot and provides RESTful APIs for the frontend. Key functionalities include:
- User authentication and authorization using Spring Security.
- CRUD operations for books and users.
- Integration with MySQL for data persistence.
The frontend is a single-page application (SPA) built with React. Key features include:
- Dynamic routing with React Router DOM.
- State management using Redux Toolkit.
- API communication using Axios.
- Responsive and user-friendly UI.
The application uses a MySQL database to store:
- User information (credentials, roles).
- Book details (title, author, summary, available copies).
- Borrowing and reservation records.
- Java Development Kit (JDK) 17 or higher.
- Node.js and npm installed.
- MySQL Server installed and running.
-
Clone the repository:
git clone https://github.com/Reda-Ganoutre01/Advanced-Library-Management-System.git
-
Navigate to the backend directory:
cd backend -
Update the
application.propertiesfile with your MySQL credentials:spring.datasource.url=jdbc:mysql://localhost:3306/library_db spring.datasource.username=your-username spring.datasource.password=your-password
-
Run the Spring Boot application:
./mvnw spring-boot:run
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the React development server:
npm start
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.