Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/edsonwade/library-management-system
The Library Management System is a web application built using Spring Boot that allows users to manage books, members, and checkouts.
https://github.com/edsonwade/library-management-system
docker-compose flyway-migrations java11 jpa-hibernate maven postgresql restapi springboot testing
Last synced: about 15 hours ago
JSON representation
The Library Management System is a web application built using Spring Boot that allows users to manage books, members, and checkouts.
- Host: GitHub
- URL: https://github.com/edsonwade/library-management-system
- Owner: edsonwade
- License: mit
- Created: 2024-07-22T11:41:46.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-09-21T17:57:57.000Z (4 days ago)
- Last Synced: 2024-09-25T01:39:17.453Z (about 17 hours ago)
- Topics: docker-compose, flyway-migrations, java11, jpa-hibernate, maven, postgresql, restapi, springboot, testing
- Language: Java
- Homepage:
- Size: 900 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ 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:
```bash
git clone https://github.com/edsonwade/library-management-system.git
```
2. Navigate to the project directory
```bash
cd library-management-system
```
3. Update src/main/resources/application.properties with your PostgreSQL credentials.
4. Install dependencies and run the application:
```bash
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**:````json
{
"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:````json
[
{
"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:````json
{
"bookId": 1,
"memberId": 1
}
````### Testing
- **To run the tests, use the following Maven command**:
```bash
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](link-to-contributing-file) 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](https://opensource.org/licenses/MIT).๐.