Capstone Brief
intermediate12 min readLesson 118 of 180
The system map, which modules surface where, and the milestone ladder.
Capstone: the Expense Tracker
You will assemble a small but real system. The domain: expenses with categories; the report layer answers money questions; persistence hides behind a repository interface.
ReportService โ ExpenseRepository (interface) โ InMemoryExpenseRepository
โ uses
Money / Category value types, Expense record
Everything you built this course appears:
- records + validation (Module 1): Expense refuses bad data at birth
- interfaces + injection (Modules 2, 12): the service never sees the in-memory map
- generics + collections (Modules 3โ4): typed repositories, comparators
- streams/collectors (Module 5): the report layer groups and totals
- exception architecture (Module 6): domain exceptions carry data
- testing (Module 8): every graded test is a boundary net
- architecture (Module 12): DTO-shaped report rows leave the service
The three challenges below are milestones; the checkpoint is the integrated system.