library-management-system

The Library Management System is a web application built using Spring Boot that allows users to manage books, members, and checkouts.

MIT License

Stars
0

๐Ÿ“š 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

  1. Clone the repository:
    git clone https://github.com/edsonwade/library-management-system.git
    
  2. Navigate to the project directory
    cd library-management-system
    
  3. Update src/main/resources/application.properties with your PostgreSQL credentials.
  4. Install dependencies and run the application:
    mvn clean install
    mvn spring-boot:run
    
  5. Access the application at http://localhost:8080.

Usage

API Endpoints

  • Add a Book

    1. Endpoint: POST /api/books
    2. Request Body**:
     {
       "title": "Book Title",
       "author": "Author Name",
       "isbn": "ISBN Number",
       "genre": "Genre",
       "publishedDate": "YYYY-MM-DD",
       "availability": true
     }
    
  • Search Books

    1. Endpoint: GET /api/books/search?query={query}
    2. Response:
    [
  {
    "id": 1,
    "title": "Book Title",
    "author": "Author Name",
    "isbn": "ISBN Number",
    "genre": "Genre",
    "publishedDate": "YYYY-MM-DD",
    "availability": true
  }
]
  • Check Out a Book
    1. Endpoint: POST /api/checkouts
    2. 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

  1. Fork the repository ๐Ÿด
  2. Create a new branch (git checkout -b feature-branch) ๐ŸŒฟ
  3. Commit your changes (git commit -am 'Add new feature') โœ๏ธ
  4. Push to the branch (git push origin feature-branch) ๐Ÿ“ค
  5. 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:

  • GitHub: edsonwade ๐Ÿฑ

License

This project is licensed under the MIT License.๐Ÿ“.