Skip to contentSkip to content
Verified credentials. On-chain. Forever.Learn more
Cover image for Design a Domain Model for a Library Loan System (Java)
Code

Design a Domain Model for a Library Loan System (Java)

FreeVerified credential3 weeksIntermediate

Overview

What this challenge is about.

Implement, in Java 21, an Item type hierarchy (Book, AudioBook, Periodical, EquipmentLoan — each with sub-type-specific rules), Member with eligibility logic, Loan as an aggregate root with state transitions (active → returned, active → overdue → fined), and value objects for Money, ISBN, LoanPeriod. Apply: encapsulation (no public setters on aggregates), polymorphism on Item-type rules, and the Builder pattern where useful. Provide a domain-event mechanism (LoanCreated, ItemReturned, FineIssued). Deliver: Maven project, JUnit 5 test suite with 85 percent coverage, 6-page design doc with UML, and a 1-page domain glossary.

CredentialBlockchain-anchored
ShareableLinkedIn-ready
LanguageEnglish
PaceSelf-paced

The Brief

What you'll do, and what you'll demonstrate.

Design and implement a rich OO domain model for a library loan system with polymorphic Item types and an aggregate-root Loan.

Earning criteria — what you'll demonstrate

  • Model a non-trivial domain with rich OO abstractions
  • Apply aggregate roots, value objects, and polymorphism in Java
  • Implement domain events without coupling consumers to producers
  • Document a domain with UML and a glossary

Program Fit

Where this fits in your program.

Sharpens the same skills your degree expects you to demonstrate.

Skills

Skills you'll demonstrate.

Each one shows up on your verified credential.

Careers

Roles this prepares you for.

Real titles. Real skill bridges. Pick the one closest to your trajectory.

Career mappings coming soon.

One more thing

You can put a credential on your CV by Friday.