Design a Domain Model for a Library Loan System (Java)
Overview
What this challenge is about.
Design a library loan system in Java 21 with domain events and UML. Complete the challenge to earn a verifiable certificate.
The scenario
The library network (publicly funded, EU-procurement-driven, replacing a 2008 J2EE monolith) needs a clean domain layer the next 2 modules can build on.
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.
Object-Oriented Programming and Design
Bachelor · Programming Languages
Strong alignment
This challenge maps to Object-Oriented Programming and Design at the Bachelor level. It sharpens the same practical skills your coursework expects — but in a real industry context with actual constraints and deliverables.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
- Java
Apply java to solve real industry problems and demonstrate production-level capability.
- Oo Design
Apply oo design to solve real industry problems and demonstrate production-level capability.
- Domain Modeling
Apply domain modeling to solve real industry problems and demonstrate production-level capability.
- Design Patterns
Apply design patterns to solve real industry problems and demonstrate production-level capability.
- Unit Testing
Apply unit testing to solve real industry problems and demonstrate production-level capability.
- Encapsulation
Apply encapsulation to solve real industry problems and demonstrate production-level capability.
Careers
Career paths this challenge builds toward
Completing this challenge demonstrates skills that transfer directly to these roles: