SOFTWARE / DATA TOOL

Data Workbench

A browser-based tool for inspecting, searching, editing, analyzing, and benchmarking structured datasets.

JavaScript CSV / TSV / JSON Data Structures Algorithms
23,220 rows tested
7 columns in test dataset
5,000 benchmark queries
3 lookup strategies
01

Overview

Data Workbench began as a Data Structures and Algorithms course project and was later redesigned independently into a more general structured-data exploration tool.

The current application can load real CSV, TSV, and JSON datasets, normalize their structure, search and sort records, calculate numeric summaries, modify data, export CSV files, and compare different lookup strategies.

02

Engineering Snapshot

What I built

A client-side structured-data workbench with import, normalization, editing, profiling, search, sorting, export, and repeatable lookup benchmarks.

Tech

Vanilla JavaScript, HTML, CSS, Papa Parse, browser File APIs, Maps, sorted arrays, and binary search.

Hardest problem

Making benchmark comparisons use the same typed keys and query workload while separating index build cost from lookup cost.

03

Capabilities

Import

CSV, TSV, JSON arrays, JSON objects, and objects containing a data array.

Explore

Search globally or by column, sort fields, and browse records through pagination.

Edit

Add, modify, and delete records directly inside the current dataset.

Analyze

Profile any column for populated, missing, and unique values; numeric fields also report mean, median, minimum, and maximum.

Benchmark

Compare linear search, a Map index, and sorted-array binary search.

Export

Export the current edited dataset back to CSV.

04

Architecture

File CSV / TSV / JSON
→
Parse Schema discovery
→
Normalize Record model
→
State Working dataset
→
Operate Search / Analyze / Edit
Schema handling

Duplicate CSV headers are retained safely, blank headers are ignored, and malformed extra fields do not silently expand the schema.

JSON normalization

JSON schemas are generated from the union of keys found across the loaded records.

Numeric inference

A field is classified as numeric when at least 80% of its populated values parse as numbers.

05

Search Benchmark

The current benchmark measures repeated exact-match lookups while separating preprocessing cost from lookup cost.

23,220 records value column 5,000 queries median of 5 runs
Strategy Build Search Total
Linear Array 0 ms 439.1 ms 439.1 ms
Map Index 1.0 ms 0.2 ms 1.1 ms
Sorted + Binary 844.2 ms 162.4 ms 1003.3 ms

Binary search reduced lookup time compared with repeated linear scanning, but constructing the sorted representation introduced a substantial upfront cost.

For this workload, the Map index provided the lowest combined build and lookup time. The experiment demonstrates why data-structure selection depends on the complete workload, not lookup complexity alone.

06

Next Revision

Faster table rendering for substantially larger datasets through row virtualization and incremental updates.

Compound filtering and saved views for repeatable dataset inspection.

Mixed successful and unsuccessful lookup workloads to compare hit and miss behavior.

More memory-conscious parsing and processing for larger local files.

CURRENT BUILD

Inspect the application directly.

Launch Workbench