Library Management System
Abstract
The Library Management System (LMS) is designed to streamline the process of managing library resources, including book borrowing, returns, and cataloging. The project prioritizes Availability, Maintainability, and Scalability to ensure seamless access for users, efficient system updates, and the ability to handle growing data and user requests. The system will follow a Microservices Architecture to enhance modularity and flexibility, ensuring independent scalability of different system components.
Author
Name: Yajas Chetan Gandhi
Student number: 49278929
Functionality
The LMS will provide the following features:
- User Management: Registration, authentication, and role-based access (librarians, members, administrators).
- Book Cataloging: Addition, categorization, and search functionality for books.
- Borrowing & Returning: Book checkout, due date tracking, and automatic overdue notifications.
- Inventory Management: Real-time stock updates and damaged book reporting.
- Reservation System: Users can place holds on books and get notified when available.
- Analytics & Reporting: Generate reports on book circulation, overdue books, and user activity.
Scope
It will include:
- Authentication of both staff and users
- Due Notifications
- Simple dashboard
- Basic search among books
Quality Attributes
- Availability
- The system should be available to use 24/7.
- Load balancing and failover mechanisms will ensure system uptime.
- Maintainability
- Modular microservices approach allows for independent updates.
- Continuous Integration/Continuous Deployment (CI/CD) will be implemented.
- Measured by time taken for bug fixes and feature deployment.
- Scalability
- Kubernetes auto-scaling ensures system can handle growing users and books.
- Read-heavy operations will be optimized with Redis caching.
- Measured via response time under concurrent user load testing.
Evaluation
- Availability: Uptime should be at least 99.9%, monitored.
- Scalability: System should handle multiple books and concurrent users.
- Performance Testing: Load testing tools will simulate real-world usage scenarios.