Capstone 2 · Levels II to III
The Archive Keeper
You are building the data layer for a community history archive. The records arrive from volunteers, which means they are inconsistent: years as text, missing fields, duplicate entries, and stray whitespace. Build a system that ingests messy JSON, cleans it honestly (recording what it had to reject rather than hiding it), supports searching and filtering, and exports the clean archive back to JSON. Missing information must be represented as genuinely missing, never faked with a zero.
Concepts used
Your dataset
A JSON string of at least twelve records, of which at least four are deliberately broken.
Milestones
The graded core
The rest of this project is yours to shape. This one function is the piece everything else depends on, so it runs against hidden tests to prove it is right before you build outward.
Your workspace
Build the full project here. Work through the milestones in order, in both languages.