Library Management — Detailed
classDiagram
direction TB
class Library {
+name
+branches
+catalog: Catalog
+loanSvc: LoanService
+fineSvc: FineService
}
class Catalog {
+search(query) List~Book~
+addBook(b)
+removeBook(b)
}
class Book {
+isbn
+title
+authors
+subject
}
class BookItem {
+barcode
+status: ItemStatus
+location
+book: Book
}
class ItemStatus {
<<enumeration>>
AVAILABLE
RESERVED
LOANED
LOST
DAMAGED
}
class Member {
+id
+name
+type: MembershipType
+loans: List~Loan~
+reservations: List~Reservation~
}
class Librarian
class Loan {
+item
+member
+issueTs
+dueTs
+returnTs
}
class Reservation {
+item
+member
+ts
+status
}
class Fine {
+loan
+amount
+paid
}
class LoanService {
+issue(item, member) Loan
+returnItem(loan)
+renew(loan)
}
class FineService {
+compute(loan) Fine
+collect(fine)
}
Library *-- Catalog
Catalog *-- "many" Book
Book *-- "many" BookItem
BookItem --> ItemStatus
Member "1" -- "many" Loan
Member "1" -- "many" Reservation
Loan --> BookItem
Reservation --> BookItem
Library --> LoanService
Library --> FineService
Librarian --> Library
Glossary & fundamentals