Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Model a small domain (a library, store, or playlist) in idiomatic Java: classes with encapsulated fields and constructors (or records for immutable data), an interface or abstract class where polymorphism fits, and the Collections Framework (List/Map/Set) to hold and query the data. Override equals/hashCode/toString correctly (or let a record do it) so objects work as Map keys / Set members.
Encapsulated classes/records; an interface or abstract type used where it fits; composition over needless inheritance.
Right collection chosen per use (List vs Set vs Map); queries via iteration or streams are correct.
equals/hashCode consistent (or a record); objects behave correctly as Set members / Map keys.
== vs .equals() used correctly; sensible access modifiers; no raw types.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A domain model with classes, collections & equality ## Goal Model a small domain (a library, store, or playlist) in idiomatic Java: classes with encapsulated fields and constructors (or records for immutable data), an interface or abstract class where polymorphism fits, and the Collections Framework (List/Map/Set) to hold and query the data. Override equals/hashCode/toString correctly (or let a record do it) so objects work as Map keys / Set members. ## Acceptance criteria - [ ] OOP design: Encapsulated classes/records; an interface or abstract type used where it fits; composition over needless inheritance. - [ ] Collections: Right collection chosen per use (List vs Set vs Map); queries via iteration or streams are correct. - [ ] Equality: equals/hashCode consistent (or a record); objects behave correctly as Set members / Map keys. - [ ] Idiomatic Java: == vs .equals() used correctly; sensible access modifiers; no raw types. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.