Library Management System
Educational Library Management System demonstrating GraphQL API development, gRPC inter-service communication, Spring Boot microservices architecture, JPA/Hibernate, Docker deployment, and automated testing.

š§ Overview
A Library Management System demonstrating GraphQL API development and gRPC inter-service communication with Spring Boot. The system includes microservices for user management, book catalog, and borrowing operations with automated testing.
Library Management System is an educational project built with Spring Boot 3.2, GraphQL, and gRPC. The architecture includes an API Gateway exposing GraphQL endpoints, User Service and Book Service communicating via gRPC, and PostgreSQL for data persistence.
Topics covered:
- š GraphQL API ā Type-safe query language with Spring Boot GraphQL
- š gRPC Communication ā High-performance RPC between services
- šļø Microservices ā Service decomposition and communication patterns
- š¾ JPA/Hibernate ā Object-relational mapping with PostgreSQL
- š³ Docker Compose ā Multi-container orchestration
- ā API Testing ā Postman collections and Newman automation
š Key Features
- GraphQL API Gateway ā Single endpoint for all queries and mutations
- gRPC Inter-Service Communication ā Protocol Buffers for efficient RPC
- User Management ā Registration, profiles, membership tracking
- Book Catalog ā Browse, search, filter books with inventory
- Borrowing System ā Book checkout, return tracking, due dates
- Health Monitoring ā Actuator endpoints for service health
- Automated Testing ā Complete Postman collection (14/14 tests passing)
- Docker Deployment ā One-command startup for all services
āļø How It Works
docker-compose up -d
./quick-test.sh test
Access GraphQL API at http://localhost:8080/graphql
š¬ Quick Start
git clone https://github.com/pandaind/library.git
cd library
docker-compose up -d
Access GraphQL Playground at http://localhost:8080/graphql
š Topics Covered
- š ļø GraphQL Development ā Schema design, resolvers, mutations, queries
- š gRPC Implementation ā Protocol Buffers, service definitions, interceptors
- š Microservices Patterns ā Service decomposition, inter-service communication
- š Spring Boot ā Configuration, dependency injection, actuator
- š” JPA/Hibernate ā Entity mapping, relationships, repositories
- š³ Docker ā Multi-container applications, service orchestration
- ā API Testing ā Postman collections, Newman automation
š§ Potential Extensions
Areas for experimentation:
- Add authentication and authorization (JWT/OAuth2)
- Implement GraphQL subscriptions for real-time updates
- Add Redis caching for frequently accessed data
- Create fine management for overdue books
- Implement book reservation system
- Add recommendation engine based on borrowing history
- Create analytics dashboard with Spring Boot Admin
- Implement circuit breakers with Resilience4j
š Documentation
Available guides:
- Project Structure Guide ā Detailed architecture walkthrough
- Postman Testing Guide ā Complete API testing tutorials
š¤ Contributing
This is a learning project. You can:
- Study GraphQL and gRPC implementation patterns
- Fork and experiment with new features
- Add documentation or architecture diagrams
- Submit improvements via pull requests