Library Management System
A practical project where participants design and build a simple library system used by a librarian to search books, issue books to members, return borrowed books, and view member/book details.
Product Overview
Project Purpose
The purpose of this project is to apply the OOP and OOAD concepts participants learned during the training sessions. They will practice identifying classes, responsibilities, relationships, use cases, business rules, and UI flows.
Main User
The system is used directly by the Librarian. Members do not log in to the system. A member requests a book or returns a book physically, and the librarian performs the required operation in the system.
Problem Scenario
A member requests the librarian to borrow a book from the library. The librarian searches the book by title or author name. The system displays all matching books with availability status. If a book copy is available, the librarian issues it to the member. When a member returns a book, the librarian can search by ISBN/copy ID or open the member profile and return the selected borrowed book.
Main Features
Search Book
Search books by title, author name, or ISBN and see copy-wise availability.
Issue Book
Issue an available book copy to a valid member and generate a borrow record.
Return Book
Return a borrowed book and make the copy available again.
Member Details
View member information, currently borrowed books, and borrowing history.
Book Details
View book information, all copies, statuses, borrower name, and due date.
Summary Popup
Show a clear confirmation message after issuing or returning a book.
Domain Objects
- BookId
- Title
- Author
- ISBN
- Category
- CopyId
- BookId
- Status
- Available / Borrowed
- MemberId
- Name
- Phone
- Address
- Status
- BorrowId
- CopyId
- MemberId
- IssueDate
- DueDate
- ReturnDate
- Searches book
- Issues book
- Returns book
- Views details
- SearchBook()
- IssueBook()
- ReturnBook()
- GetMemberDetails()
UI Mocks
Dashboard
Welcome back, Librarian. Manage library borrowing activities from here.
Search Book
Find books by title, author, or ISBN.
Issue Book
Issue an available copy to a member.
Return Book
Return a borrowed book copy.
Recent Borrowed Books
| Book Title | Member | Issue Date | Due Date |
|---|---|---|---|
| Clean Code | Rahim Ahmed | 09 May 2026 | 23 May 2026 |
| C# in Depth | Karim Hasan | 07 May 2026 | 21 May 2026 |
| Refactoring | Nusrat Jahan | 05 May 2026 | 19 May 2026 |
Search Book
Search by title, author name, or ISBN.
Search Results
| Title | Author | ISBN | Copy ID | Status | Borrower / Due Date | Action |
|---|---|---|---|---|---|---|
| Clean Code | Robert C. Martin | 9780132350884 | C-001 | Available | - | |
| Clean Code | Robert C. Martin | 9780132350884 | C-002 | Borrowed | Rahim Ahmed Due: 23 May 2026 |
|
| Clean Code | Robert C. Martin | 9780132350884 | C-003 | Available | - |
Issue Book
Issue an available book copy to a selected member.
Selected Book
- Title
- Clean Code
- Author
- Robert C. Martin
- ISBN
- 9780132350884
- Copy ID
- C-001
- Status
- Available
Find Member
Member Information
- Name
- Rahim Ahmed
- Member ID
- M-101
- Phone
- 017XXXXXXXX
- Borrowed Books
- 2
- Status
- Active
Issue Information
- Book
- Clean Code
- Copy ID
- C-001
- Issued To
- Rahim Ahmed
- Due Date
- 23 May 2026
- New Status
- Borrowed
Return Book
Return a borrowed book using ISBN, copy ID, or member information.
Borrowed Book Information
- Book
- Clean Code
- Author
- Robert C. Martin
- ISBN
- 9780132350884
- Copy ID
- C-002
- Status
- Borrowed
Borrower Information
- Name
- Rahim Ahmed
- Member ID
- M-101
- Phone
- 017XXXXXXXX
- Issue Date
- 09 May 2026
- Due Date
- 23 May 2026
- Book
- Clean Code
- Copy ID
- C-002
- Returned By
- Rahim Ahmed
- Return Date
- 09 May 2026
- New Status
- Available
Member Details
View member information, currently borrowed books, and borrowing history.
Member Information
- Name
- Rahim Ahmed
- Member ID
- M-101
- Phone
- 017XXXXXXXX
- Address
- Dhaka
- Status
- Active
Borrowing Summary
- Currently Borrowed
- 2 Books
- Total Borrowed
- 12 Books
- Overdue Books
- 0 Books
- Last Borrowed
- 09 May 2026
Currently Borrowed Books
| Book Title | Copy ID | Issue Date | Due Date | Action |
|---|---|---|---|---|
| Clean Code | C-002 | 09 May 2026 | 23 May 2026 | |
| C# in Depth | C-010 | 07 May 2026 | 21 May 2026 |
Borrowing History
| Book Title | Issue Date | Return Date | Status |
|---|---|---|---|
| Refactoring | 01 Apr 2026 | 14 Apr 2026 | Returned |
| Design Patterns | 10 Mar 2026 | 24 Mar 2026 | Returned |
Book Details
View full book information and copy-wise status.
Book Information
- Title
- Clean Code
- Author
- Robert C. Martin
- ISBN
- 9780132350884
- Category
- Software Engineering
- Publisher
- Prentice Hall
Availability Summary
- Total Copies
- 3
- Available
- 2
- Borrowed
- 1
- Next Available
- Now
Copy Information
| Copy ID | Status | Borrowed By | Due Date | Action |
|---|---|---|---|---|
| C-001 | Available | - | - | |
| C-002 | Borrowed | Rahim Ahmed | 23 May 2026 | |
| C-003 | Available | - | - |
User Flows
Overall Flow
Flow 1: Search Book
- Librarian opens the Search Book screen.
- Librarian selects search type: title, author, or ISBN.
- Librarian enters search text.
- System displays matching books.
- System shows copy-wise status.
- Librarian can issue an available copy or view details.
Flow 2: Issue Book
- Librarian selects an available book copy.
- System opens the Issue Book screen.
- Librarian searches member by ID or phone.
- System displays member information.
- Librarian confirms due date.
- Librarian clicks Confirm Issue.
- System creates a borrow record.
- Book copy status becomes Borrowed.
Flow 3: Return Book by Copy ID / ISBN
- Librarian opens Return Book screen.
- Librarian enters copy ID or ISBN.
- System displays borrowed book information.
- System displays borrower details.
- Librarian clicks Confirm Return.
- System updates the borrow record.
- Book copy status becomes Available.
Flow 4: Return Book from Member Profile
- Librarian opens Member Details screen.
- Librarian searches member.
- System displays currently borrowed books.
- Librarian clicks Return beside a book.
- System displays selected book details.
- Librarian confirms return.
- System removes the book from current borrowed list.
Flow 5: View Member Details
- Librarian searches member by ID, phone, or name.
- System displays member profile.
- System displays currently borrowed books.
- System displays borrowing history.
- Librarian can return a borrowed book from this screen.
Flow 6: View Book Details
- Librarian searches book by ISBN, title, or author.
- System displays book information.
- System displays all physical copies.
- System shows available and borrowed copies.
- Librarian can issue available copy or view borrower information.
Business Rules
Issue Book Rules
- A book copy can be issued only if it is available.
- A borrowed copy cannot be issued again.
- A valid active member is required to issue a book.
- Due date must be greater than issue date.
- After issuing, the copy status becomes Borrowed.
- A borrow record must be created.
Return Book Rules
- Only borrowed books can be returned.
- Return date must be recorded.
- After return, the copy status becomes Available.
- The book should be removed from the member's current borrowed list.
- The borrowing history should still keep the old record.
Search Rules
- Librarian can search by title, author, or ISBN.
- Search result should show all matching books.
- Search result should show availability status.
- If borrowed, result should show borrower name and due date.
Member Rules
- Only active members can borrow books.
- Member profile should show currently borrowed books.
- Member profile should show borrowing history.
- Librarian can return a book from the member profile.
Minimum Data Fields
Book
- BookId
- Title
- Author
- ISBN
- Category
- Publisher
BookCopy
- CopyId
- BookId
- Status
- Available
- Borrowed
Member
- MemberId
- Name
- Phone
- Address
- Status
BorrowRecord
- BorrowId
- CopyId
- MemberId
- IssueDate
- DueDate
- ReturnDate
- Status
OOP / OOAD Practice Guide
Suggested Beginner Classes
- Book
- Member
- BorrowRecord
- Library
This version is easier for beginners. They can start by storing books and members in lists.
Suggested Improved Classes
- Book
- BookCopy
- Member
- BorrowRecord
- BookService
- MemberService
- BorrowService
This version is more practical because it supports multiple copies of the same book.
Participant Tasks
- Identify all classes from the problem statement.
- Write responsibilities for each class.
- Draw relationships among Book, BookCopy, Member, and BorrowRecord.
- Write use cases for Search Book, Issue Book, Return Book, Member Details, and Book Details.
- Build the UI screens using simple HTML/CSS or any framework.
- Implement the core logic using OOP principles.
- Test the important business rules.