Skip to main content

Capstone Ship: Milestones and Verification

beginner10 min readLesson 65 of 204

How the graded checks map to milestones, and how to verify each one yourself before submitting.

Milestone → graded check

| Milestone | Graded challenge | Proves | | --- | --- | --- | | M1 records + balance | capstone core | struct, class invariant, sum | | M2 categories + rejection | capstone categories | map aggregation, boundary validation | | M3 report via program() | capstone report | pipeline formatting, capture-based grading |

Verify each milestone yourself

For every milestone, before submitting: write a program() (or temporary main) that exercises the feature and print what you expect. Compare. This is the characterization habit from module 16 applied to your own project — and it is exactly how the platform's tests will see your code.

The honest rules of this capstone

  • No solution is provided — the lessons of modules 1–18 are your toolkit; the brief is your contract.
  • Edge cases are graded equally with happy paths: empty ledger, rejected record, one-category month.
  • Architecture constraints are part of the grade: a Ledger class that validates, free functions for parsing, no raw owning pointers.
  • AI assistants: allowed for explaining compiler errors and suggesting test cases (module 14's rules); not allowed to write your Ledger. The graded checks read your structure, not just your output.

After shipping

You will have used every beginner tool under a real requirement: types, classes, containers, algorithms, streams, RAII, and a test-driven loop. C++ Intermediate picks up exactly where this artifact ends: templates and generic design, deeper exception guarantees, build systems beyond one target, and concurrency. The path continues; the fundamentals are yours.