๐ Library Management System
Description
The Library Management System is a web application built using Spring Boot that allows users to manage books, members,
and checkouts. It provides features to add, update, and delete books and members, track overdue books, and search for
books and members.
Features
- ๐ Manage Books: Add, update, and remove books.
- ๐งโ๐คโ๐ง Manage Members: Add, update, and remove library members.
- ๐
Checkout Management: Check in and check out books.
- โณ Overdue Tracking: Identify and list books that are overdue.
- ๐ Search Functionality: Search for books and members by name or title, and view books checked out by specific
members.
Project Structure
The project follows Agile methodology, with the following structure:
-
Sprint 1: Project setup and initial implementation.
-
Sprint 2: Member management and book issuing.
-
Sprint 3: Fine management and reporting.
-
Sprint 4: Search functionality and final integrations.
-
Sprint 5: Testing and deployment.
Technologies Used
-
Java: Programming language โ
-
Spring Boot: Framework for building the application ๐
-
PostgreSQL: Database for data storage ๐๏ธ
-
Flyway: Database migration tool ๐
-
JUnit: Testing framework ๐งช
Installation
Prerequisites
- Java 11 or higher โ
- PostgreSQL ๐๏ธ
- Maven ๐ฆ
Steps
- Clone the repository:
git clone https://github.com/edsonwade/library-management-system.git
- Navigate to the project directory
cd library-management-system
- Update src/main/resources/application.properties with your PostgreSQL credentials.
- Install dependencies and run the application:
mvn clean install
mvn spring-boot:run
- Access the application at http://localhost:8080.
Usage
API Endpoints
-
Add a Book
- Endpoint: POST /api/books
- Request Body**:
{
"title": "Book Title",
"author": "Author Name",
"isbn": "ISBN Number",
"genre": "Genre",
"publishedDate": "YYYY-MM-DD",
"availability": true
}
-
Search Books
- Endpoint: GET /api/books/search?query={query}
- Response:
[
{
"id": 1,
"title": "Book Title",
"author": "Author Name",
"isbn": "ISBN Number",
"genre": "Genre",
"publishedDate": "YYYY-MM-DD",
"availability": true
}
]
-
Check Out a Book
- Endpoint: POST /api/checkouts
- Response:
{
"bookId": 1,
"memberId": 1
}
Testing
-
To run the tests, use the following Maven command:
mvn test
Acknowledgements
-
Spring Boot: For the framework ๐
-
PostgreSQL: For the database ๐๏ธ
-
Flyway Migration: For database migration ๐
-
Mockito: For testing ๐งช
Branch Naming Conventions
-
Feature Branches:
feature/short-description
-
Bug Fixes:
bugfix/short-description
-
Hotfixes:
hotfix/short-description
-
Release Branches:
release/version-number
-
Development Branches:
develop
Contributing
- Fork the repository ๐ด
- Create a new branch (git checkout -b feature-branch) ๐ฟ
- Commit your changes (git commit -am 'Add new feature') โ๏ธ
- Push to the branch (git push origin feature-branch) ๐ค
- Create a new Pull Request ๐ฉ
Please read CONTRIBUTING.md for details on how to contribute to this project.๐ค
Contact
For questions or feedback, please reach out to:
License
This project is licensed under the MIT License.๐.