Jose Bejarano

Portal EPP

Tracking safety gear from the warehouse to the crew member who wears it, for a port operator in Peru.

Year
2026
Role
Solo · End to end
Stack
TypeScript · React · Laravel · PostgreSQL · Mantine
Status
In production
Portal EPP showcase with the warehouse dashboard, a shipment tracking view, and the mobile package reception screen

A port operator hands out protective equipment to crews across a fleet of vessels. The warehouse packed everything from an Excel list, and once the truck left, nobody really knew what had arrived where. When a crew member said they never got their boots, there was no way to check.

Portal EPP gives every package a code. The warehouse uploads the list, packs items into boxes on screen, prints the labels and sends the shipment out. On the other end, the captain scans the box when it arrives, and each crew member scans their own bag and ticks off what’s inside. If something is missing or the wrong size, they report it right there with a photo. Everyone involved gets an email, and the admins get a dashboard and reports.

I built it end to end: the data model, the API, the web app and the scanning flow, which had to be quick to use on a phone while standing on a deck. It’s in daily use and I still ship improvements as the crews give feedback.

Design
End to end
Engineering
FullStack
Infrastructure
Vercel · Laravel Sail (Docker) · PostgreSQL · S3 · GitHub Actions
Link
Coming soon
Phase 01

Define

Followed a box from the warehouse to a crew member's hands to find every point where things got lost, then modeled shipments, packages and items around those handoffs.

Phase 02

Design & build

An API with roles for admin, warehouse, captain and crew, and a web app with drag-and-drop packing, printable labels and a phone scanner for receiving.

Phase 03

Ship & run

Tests on every push, the app on Vercel, and a steady stream of small fixes since launch, mostly around scanning and reporting.