Prod[03]: Functional Requirement Specification (FRS) for Library Management System
1. Introduction
1.1 Purpose
The purpose of this document is to outline the functional requirements for the Library Management System, which will allow users to search, borrow, return, and manage books efficiently. The system will also handle user management, book tracking, and borrowing history while ensuring secure and efficient library operations.
1.2 Scope
The Library Management System will allow users to:
- Search for books in the catalog.
- Borrow and return books based on availability.
- View borrowed book history.
- Manage user profiles and library staff roles.
- Ensure real-time updates on book availability.
This system will be designed using Object-Oriented Programming (OOP) principles, integrating Encapsulation, Inheritance, Polymorphism, Abstraction, and Composition.
2. Functional Requirements
2.1 User Management
- Users shall be able to register, log in, and update their profiles.
- The system shall support different user roles:
- Library Members (who can borrow and return books).
- Librarians (who can add, remove, and update books).
2.2 Book Management
- Librarians shall be able to add, update, and remove books from the system.
- Each book shall have attributes such as:
- Title
- Author
- ISBN
- Genre
- Availability status
2.3 Book Borrowing & Returning
- Users shall be able to borrow available books, which will update the availability status.
- Borrowed books shall have a due date after which they must be returned.
- Users shall be able to return borrowed books, making them available again.
- Late returns shall trigger penalties or fines.
2.4 Borrowing Rules & Restrictions
- Users can borrow a maximum of 3 books at a time.
- Books shall be returned within 14 days, or the user will be fined.
- Users with pending fines shall not be allowed to borrow new books.
2.5 Search & Filtering
- Users shall be able to search for books by:
- Title
- Author
- Genre
- ISBN
- The system shall allow users to filter books based on availability.
2.6 Borrowing Records & History
- The system shall maintain records of all borrowed books per user.
- Users shall be able to view their borrowing history.
2.7 Notifications & Alerts
- The system shall send due date reminders to users.
- Users shall be notified of overdue books and fines.
- Librarians shall receive alerts when a new book is requested by users.
2.8 Reservation Service
- Users shall be able to reserve books if they are currently unavailable.
- Reserved books shall be held for 24 hours after becoming available.
3. Non-Functional Requirements
3.1 Performance
- The system shall process book availability checks in under 2 seconds.
- Search queries shall return results within 3 seconds.
3.2 Security
- User authentication shall be enforced using secure login credentials.
- User data, including borrowing history, shall be encrypted for privacy.
3.3 Availability & Scalability
- The system shall support multiple users concurrently without delays.
- The backend shall be designed to handle a large book database efficiently.
4. System Architecture Overview
Class Design
- UserProfile → Manages user details and borrowing limits.
- Book → Represents books with attributes like title, author, and availability.
- BorrowRecord → Stores details of borrowed books.
- LibraryCatalog → Maintains and manages book collections.
- Librarian → Manages book inventory.
- BorrowService → Handles book borrowing and due dates.
- ReturnService → Manages book returns and fine calculations.
- Main → Runs the application.
5. Assumptions & Constraints
- Users must register and log in before borrowing books.
- A valid library membership is required for borrowing.
- Overdue books may result in account suspension or fines.
6. Notifications & Types
The system shall notify users and librarians about important library events through multiple channels.
6.1 Notification Types:
- Due Date Reminder: Notifies users a day before their borrowed book’s due date.
- Overdue Alert: Alerts users when a book is overdue and informs them of any fines.
- Reservation Availability: Notifies users when a reserved book is available for pickup.
- Borrowing Limit Reached: Informs users when they have reached the maximum book borrowing limit.
- Fine Payment Confirmation: Sends a notification when a fine is successfully paid.
- Librarian Alerts:
- New book requests from users.
- Low stock notifications for popular books.
6.2 Notification Methods:
- Email Notifications — Sent for due date reminders, overdue alerts, and reservation updates.
- Push Notifications — Used for real-time book availability and fine payment updates.
- SMS Alerts (Optional) — Enabled for critical notifications like overdue books and reservation expirations.
This will serve as a reference point for us when creating automation suites in the future.