Diagramate

Library Management System Class Diagram Template

Class diagram with Member, Book, Loan and Librarian classes, their attributes, methods and associations. For object-oriented coursework and capstone projects; rename classes and methods and export PNG, Word or PowerPoint for free.

makes

"is subject of"

processes

1

1

1

*

*

*

Member

+String memberId

+String name

+int loanLimit

+borrow(Book)

+returnBook(Book)

Book

+String isbn

+String title

+String author

+boolean available

+checkOut()

+checkIn()

Loan

+Date borrowedOn

+Date dueOn

+Date returnedOn

+overdueDays() : int

Librarian

+String staffId

+processLoan(Member, Book)

+addBook(Book)

Previewed in the “Ink Teal” theme; you can switch themes in the editor
Open in the editorFree · No sign-up · No watermark

Edit the text, pick a theme, export Word / PowerPoint / PDF

When to use it

Object-oriented programming coursework, software engineering assignments and the "system design" section of a project report. Four classes cover the core objects of lending and returning, with multiplicities (one to many) on the associations.

Making it yours

  • Attributes are +Type name, methods are +method(params) ReturnType; + public, - private, # protected.
  • Add inheritance with Member <|-- StudentMember; the arrow points at the parent.
  • Mark interfaces or abstract classes with <<interface>> or <<abstract>> under the class name.
  • Multiplicities are the quoted values: "1" --> "0..*".

Mermaid code

classDiagram
    class Member {
        +String memberId
        +String name
        +int loanLimit
        +borrow(Book)
        +returnBook(Book)
    }
    class Book {
        +String isbn
        +String title
        +String author
        +boolean available
        +checkOut()
        +checkIn()
    }
    class Loan {
        +Date borrowedOn
        +Date dueOn
        +Date returnedOn
        +overdueDays() int
    }
    class Librarian {
        +String staffId
        +processLoan(Member, Book)
        +addBook(Book)
    }
    Member "1" --> "*" Loan : makes
    Book "1" --> "*" Loan : "is subject of"
    Librarian "1" --> "*" Loan : processes

Ask an AI for one with this structure

Send the prompt below to ChatGPT or Claude, then paste the whole reply into the editor; the code inside is detected automatically.

Draw a library management system class diagram in Mermaid classDiagram syntax with classes Member (memberId, name, loanLimit; methods borrow, returnBook), Book (isbn, title, author, available; methods checkOut, checkIn), Loan (borrowedOn, dueOn, returnedOn; method overdueDays), Librarian (staffId; methods processLoan, addBook). Member, Book and Librarian each have a one-to-many association with Loan, labelled with a verb. Output only the mermaid code block.

FAQ

What do the different arrows mean?

<|-- inheritance, *-- composition, o-- aggregation, --> association, ..> dependency, ..|> realisation. Arrows point from child to parent and from whole to part.

Where does the return type go?

After the parentheses: +overdueDays() int. Parameters go inside the parentheses, separated by commas.

Can class names have spaces?

Use an alias: class LibraryMember["Library member"] shows the label with a space while the id stays a single word.

More in this category

All templates

Updated 2026-09-05