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.

Library Management System

🧭 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:

  1. Add authentication and authorization (JWT/OAuth2)
  2. Implement GraphQL subscriptions for real-time updates
  3. Add Redis caching for frequently accessed data
  4. Create fine management for overdue books
  5. Implement book reservation system
  6. Add recommendation engine based on borrowing history
  7. Create analytics dashboard with Spring Boot Admin
  8. Implement circuit breakers with Resilience4j

šŸ“– Documentation

Available guides:


šŸ¤ 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

Hello, How are you today?


Please share your details below

Start a Conversation

Expect delay in response

Hello, How are you today? !


Expect delay in response

powered by PandaC