Designed a five-step Angular 21 and DevExtreme wizard that selects the target entity, validates the upload, maps columns to database fields with reusable saved mappings, previews the transformed rows, and gates the write behind a human review.
On the server, a Clean Architecture .NET 10 backend pairs a streaming ExcelDataReader pipeline with a single-transaction binary COPY, runs the pre-flight dry run on a separate queue through the same parse and evaluation core, enforces per-entity validation rules, and writes a two-tier audit journal holding per-batch totals and per-row snapshots.
Upload handling rejects macros, inspects the OOXML package, caps declared sizes, and stores files under generated names outside the webroot.
Delivered during an internship at Axley Bankers, then continued independently with a batch-first journal, per-table concurrent imports, and distinct validating and copying phases.