OOP & OOAD Training Project

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.

1 Primary user: Librarian
5 Main features
6 Suggested screens
OOP Book, Member, BorrowRecord
1

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.

2

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.

3

Domain Objects

A real library usually has multiple copies of the same book. So, the system should distinguish between Book and BookCopy.
Book
  • BookId
  • Title
  • Author
  • ISBN
  • Category
BookCopy
  • CopyId
  • BookId
  • Status
  • Available / Borrowed
Member
  • MemberId
  • Name
  • Phone
  • Address
  • Status
BorrowRecord
  • BorrowId
  • CopyId
  • MemberId
  • IssueDate
  • DueDate
  • ReturnDate
Librarian
  • Searches book
  • Issues book
  • Returns book
  • Views details
LibraryService
  • SearchBook()
  • IssueBook()
  • ReturnBook()
  • GetMemberDetails()
4

UI Mocks

Dashboard Screen
Mock UI

Dashboard

Welcome back, Librarian. Manage library borrowing activities from here.

System Active
Total Books1,250
Available Copies980
Borrowed Copies270
Members430

Search Book

Find books by title, author, or ISBN.

Open

Issue Book

Issue an available copy to a member.

Open

Return Book

Return a borrowed book copy.

Open

Recent Borrowed Books

Book Title Member Issue Date Due Date
Clean CodeRahim Ahmed09 May 202623 May 2026
C# in DepthKarim Hasan07 May 202621 May 2026
RefactoringNusrat Jahan05 May 202619 May 2026
Search Book Screen
Mock UI

Search Book

Search by title, author name, or ISBN.

Search Clear

Search Results

Title Author ISBN Copy ID Status Borrower / Due Date Action
Clean Code Robert C. Martin 9780132350884 C-001 Available - Issue
Clean Code Robert C. Martin 9780132350884 C-002 Borrowed Rahim Ahmed
Due: 23 May 2026
Details
Clean Code Robert C. Martin 9780132350884 C-003 Available - Issue
Issue Book Screen
Mock UI

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

Search Member

Member Information

Name
Rahim Ahmed
Member ID
M-101
Phone
017XXXXXXXX
Borrowed Books
2
Status
Active

Issue Information

Confirm Issue Cancel
Return Book Screen
Mock UI

Return Book

Return a borrowed book using ISBN, copy ID, or member information.

Search

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
Confirm Return Cancel
Member Details Screen
Mock UI

Member Details

View member information, currently borrowed books, and borrowing history.

Search Member

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 CodeC-00209 May 202623 May 2026Return
C# in DepthC-01007 May 202621 May 2026Return

Borrowing History

Book Title Issue Date Return Date Status
Refactoring01 Apr 202614 Apr 2026Returned
Design Patterns10 Mar 202624 Mar 2026Returned
Book Details Screen
Mock UI

Book Details

View full book information and copy-wise status.

Search Book

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-001Available--Issue
C-002BorrowedRahim Ahmed23 May 2026View Member
C-003Available--Issue
5

User Flows

Overall Flow

Dashboard
โ†’
Search Book
โ†’
Check Availability
โ†’
Issue Book
โ†’
Confirmation

Flow 1: Search Book

  1. Librarian opens the Search Book screen.
  2. Librarian selects search type: title, author, or ISBN.
  3. Librarian enters search text.
  4. System displays matching books.
  5. System shows copy-wise status.
  6. Librarian can issue an available copy or view details.

Flow 2: Issue Book

  1. Librarian selects an available book copy.
  2. System opens the Issue Book screen.
  3. Librarian searches member by ID or phone.
  4. System displays member information.
  5. Librarian confirms due date.
  6. Librarian clicks Confirm Issue.
  7. System creates a borrow record.
  8. Book copy status becomes Borrowed.

Flow 3: Return Book by Copy ID / ISBN

  1. Librarian opens Return Book screen.
  2. Librarian enters copy ID or ISBN.
  3. System displays borrowed book information.
  4. System displays borrower details.
  5. Librarian clicks Confirm Return.
  6. System updates the borrow record.
  7. Book copy status becomes Available.

Flow 4: Return Book from Member Profile

  1. Librarian opens Member Details screen.
  2. Librarian searches member.
  3. System displays currently borrowed books.
  4. Librarian clicks Return beside a book.
  5. System displays selected book details.
  6. Librarian confirms return.
  7. System removes the book from current borrowed list.

Flow 5: View Member Details

  1. Librarian searches member by ID, phone, or name.
  2. System displays member profile.
  3. System displays currently borrowed books.
  4. System displays borrowing history.
  5. Librarian can return a borrowed book from this screen.

Flow 6: View Book Details

  1. Librarian searches book by ISBN, title, or author.
  2. System displays book information.
  3. System displays all physical copies.
  4. System shows available and borrowed copies.
  5. Librarian can issue available copy or view borrower information.
6

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.
7

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
8

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

  1. Identify all classes from the problem statement.
  2. Write responsibilities for each class.
  3. Draw relationships among Book, BookCopy, Member, and BorrowRecord.
  4. Write use cases for Search Book, Issue Book, Return Book, Member Details, and Book Details.
  5. Build the UI screens using simple HTML/CSS or any framework.
  6. Implement the core logic using OOP principles.
  7. Test the important business rules.
Recommended project scope: keep the first version simple. Use in-memory collections or simple database tables. Focus on object design, responsibilities, flows, and business rules before adding complex features.