Skip to content
HV · 07
CASE STUDY · 01

INDEPENDENT FULL-STACK PROJECT

DISPATCHTRACK LITE

Create deliveries, assign drivers, and resolve exceptions in a browser demo. This case study also covers the separate Java API.

ROLE

Full-stack engineer

Product flow, interface, API contracts, serverless deployment, and end-to-end troubleshooting.

STACK

React · Java · AWS

React, Java, AWS Lambda, API Gateway, REST APIs, and serverless infrastructure.

DOMAIN

Delivery operations

A practical workflow shaped by first-hand familiarity with logistics and time-sensitive delivery work.

Try the current demo

Open the delivery workspace ↗

Create a fictional delivery, assign a driver, move it into transit, and record a completion or exception note. Each delivery keeps a history of its status changes.

The public GitHub Pages demo stores records only in your browser. It does not connect to the Java API, share records between devices, or provide customer accounts. Use fictional data only.

Challenge

Delivery operations involve several moving parts: customers, stops, statuses, routes, and exceptions. The project needed a clear interface while keeping the backend small enough to deploy and reason about independently.

Original full-stack approach

I separated the system into a browser interface, explicit REST contracts, Java request handlers, and serverless infrastructure. That boundary kept presentation concerns out of the API and made each endpoint easier to test and troubleshoot.

REACT CLIENT→API GATEWAY→JAVA LAMBDA→DELIVERY DATA

Important engineering decisions

  • Explicit contracts: request and response shapes were treated as a shared interface rather than incidental JSON.
  • Small handlers: serverless functions stayed focused on one workflow so deployment and failures remained understandable.
  • Operational feedback: the interface surfaced loading, success, empty, and error states instead of assuming every network call would work.
  • Deployability: infrastructure choices were evaluated as part of the product, not as an afterthought.

Hard parts

The difficult work was at the boundaries: browser-to-API communication, cross-origin configuration, environment differences, permissions, and turning cloud errors into something actionable. I had to trace requests across those boundaries to find where they failed.

Result and lessons

The current browser demo supports driver assignments, guarded status transitions, exception recovery, and saved event history. The separate Java API implements persistent records, validation, and conflict handling. Turning this into a shared service still requires a hosted backend, authentication, company-level data isolation, backups, and operational monitoring.

DispatchTrack Lite is an independent portfolio project. It is not affiliated with DispatchTrack, Ryder, or kW Engineering.

Start
dispatchtrack lite