CSV Cleanup with Validation and Rejection Reports
Self-directed, AI-assisted portfolio demo using synthetic records; not a paid client engagement.
Built a Python standard-library command-line tool that trims fields, normalizes email domains while preserving local parts, and keeps the first occurrence of each record ID. Missing and duplicate IDs go to a separate rejection report with reasons. Strict input validation happens before output, and existing files are never overwritten.
Delivered source code, sample input, expected outputs, usage instructions, and five passing CLI tests covering normalization, quoted fields, malformed input, duplicate handling, and overwrite protection.
Scope: a documented three-column schema; email syntax and deliverability are not validated.
Source and reproduction steps:
https://github.com/codeofwxz/automation-portfolio-demos/tree/main/csv-cleanup