[003] / SELECTED WORK

·HACKATHON

PISAYIAN DATA CLEANER

1st place, Kapwa Codefest 2025. CSV → 3 normalized tables. 95% manual-cleanup reduction.

ROLE:
Frontend lead (team of 4)
TIMELINE:
September 2025
STATUS:
Shipped
STACK:
Next.js, TypeScript, Tailwind

Built in 36 hours for the PSHS International Alumni Foundation — a web tool that converts SPECTRA CSV exports into three relational tables, replacing 10+ hours of volunteer cleanup with a few clicks.

[METRICS]

0st place
RESULT
Kapwa Codefest 2025
EVENT
0 hours
BUILD TIME
0%
CLEANUP REDUCTION

[STACK]

  • Next.js
  • TypeScript
  • Tailwind
  • PapaParse
  • fflate

[01]

THE PROBLEM

PSHS International Alumni Foundation maintains a directory of alumni from the Philippine Science High School system, exported quarterly from a legacy SPECTRA database. The export comes out as a single denormalized CSV with every record's history collapsed into a wide row — multiple addresses, multiple employers, multiple education entries, all comma-separated within cells. Volunteers were spending 10+ hours per export turning this into anything queryable. We had 36 hours at Kapwa Codefest to fix it.

[02]

WHAT I BUILT

A web tool that takes the SPECTRA export and produces three normalized tables — alumni, contacts, education — ready to import into a relational database. The hard part wasn't parsing CSV (PapaParse handles that); it was building a UI that makes the cleanup *visible*. Rows that fail validation get flagged with the specific reason. Volunteers can edit inline, see counts update in real time, and download a zipped bundle (fflate) of the three CSVs once the dataset is clean. We placed first.

[03]

WHAT I LEARNED

Hackathon work is mostly about scoping. We had 36 hours and ten ideas. The version that won wasn't the most ambitious one — it was the one we could finish and demo on stage. I'd been on hackathon teams before that built impressive prototypes that broke 30 seconds into the demo. This time we cut features aggressively (no auth, no DB, no deploy pipeline beyond Vercel preview) and spent the saved time on UX polish. The lesson is the same one every senior engineer eventually learns about deadlines — but feeling it under pressure is different from reading it.

[UP NEXT]

004 / SPYFALL UNLIMITED