Overview / Technical Docs / Implementation Plan
Freight Quote Tool · Implementation Plan

Implementation Plan

How the build was sequenced — the timeline, what was gathered up front, the hour-by-hour build day, and the risks planned for before they happened.

Timeline

WhenWhat
Pre-buildProduct requirements + technical design finalized; the preparation request goes to the client.
Build dayTwo-person build (Nate + Pete together) — sequence below.
+1 dayReserve / overflow.
Within the weekIf the UPS permission gate isn't cleared on build day, close the live-rate loop async; one batched tweak round after the team uses it.
Engagement endHandoff complete — tool live, seats provisioned, source in a client-reachable repo.

Preparation (gathered before build day)

A short, organized list, assembled up front so build day starts warm:

  • UPS developer access — the app's client ID + secret (or developer-account access to mint our own), with the Rating API product enabled and the negotiated-rate account linked to the app. (This is the permission the original prototype's rating call hadn't yet cleared — if it's hard to find, it gets fixed together in a scheduled hour.)
  • The current SAGE catalog export (.xlsx), plus confirmation that the column mapping still holds.
  • User list — the ~5 email addresses that get access, and which of them get the admin / catalog-upload role.
  • A few known-good real quotes — recent examples (part #, quantity, ZIP, residential/commercial) with the rate actually received, so the tool's numbers can be validated against real ones, not just against UPS.
  • One scheduled working hour — screen share or on-site, for the credential/permission work and anything only the client can click.
  • Hosting account — if hosting client-owned from the start, a free Cloudflare account on a client-controlled email, with us added to configure everything (the client never has to touch it).
  • A smoke-test set of the most-quoted part numbers, plus an example no-dimensions (crystal) item for manual mode.

Build-day plan

  1. Hour 1 — the gate. OAuth token + one live rate call confirming negotiated rates are present, from a real network. If blocked: don't burn the day on carrier support — build everything against a stubbed rate call and close the UPS loop async within the week.
  2. Worker skeleton + Access gating live at a real URL.
  3. Catalog upload → database → item lookup → carton math.
  4. End-to-end quote flow (item-lookup mode + manual carton-specs mode); a UI pass mapping what the team actually does to the interface.
  5. Ship; collect the tweak list in one batch later — no redesign loop.

Post-build

  • Provision the ~5 seats in Cloudflare Access; confirm the session length feels right.
  • One batched tweak round after real use ("use it a little, and if you have any tweaks, we'll take them once").
  • Validate a week of real quotes against expectations; revisit the quote-log decision only if someone actually misses it.
  • Source-handoff posture: private repo, client-reachable on request — you get the source and keep running.

Risks & contingencies

  • UPS permission can't be resolved in the hour → the stubbed-rate build ships anyway; live rates land async within the week. The day still ends with the team seeing their tool.
  • Negotiated rates absent from responses (an account-linking quirk) → published rates shown with a visible marker; never silent.
  • Catalog export drift (columns moved) → the upload parser validates headers and says exactly what's wrong instead of ingesting bad data.
  • Scope creep → the cut list in the requirements is the contract; anything new goes to the tweak round or a separate conversation.