← All projects
intermediate8h
Course Enrollment and Progress Manager
Build a real, local, console-based Java application modeling courses, learners, enrollments, and lesson-completion progress — using encapsulation, composition, interfaces, polymorphism, structured exceptions, and a real JUnit test suite. Compiled and run entirely on your own machine; this platform does not execute Java.
Tracks: Java
Objectives
- Model a small domain (courses, learners, enrollments) with encapsulated classes, composition, and at least one interface with multiple implementations
- Validate input and signal failure with a custom, structured exception hierarchy
- Implement equals/hashCode correctly for at least one value-like class
- Compute derived progress data using Streams, and verify all of it with a real JUnit test suite
Before you start
- Classes, Objects, Constructors, and Encapsulation
- Inheritance vs. Composition, Packages, and Access Control
- Interfaces, Abstract Classes, and Polymorphism
- Exceptions: Checked, Unchecked, and Handling Them Well
- Generics, Equality, hashCode, and Immutability
- Collections: List, Set, and Map
- Lambdas and the Stream API
- Resource Safety, Unit Testing, and Maintainable Project Structure
Milestones
0%