[DEVEMBER 2021] Open Source Shipment Tracker

Quick skeleton of a first page, decided to do this today, and I’m stepping out to gym shortly, preworkout’s already got me feeling ants…

Minimum Viable Product:

  • Ability to track shipments
  • Auto-update
  • Authentication
  • categorization of shipments, probably with tags

Stretch goals:

  • PWA
  • Push notifications on “out for delivery” and “problem”
  • Parse your emails and extract tracking numbers, auto-add
  • Organization setup, where you can have multiple logins to share a table of shipments

Technologies I’m going to use:

  • Vue Frontend
  • Vuetify graphical toolkit
  • Container deployment

Technologies I’m looking at:

  • Golang backend (leaning towards this for the meme)
  • Node backend
  • Rust backend

Shipment Services I’m planning to integrate with:

  • Fedex
  • USPS
  • UPS
  • DHL
  • Amazon Logistics (maybe?)

This has always been something I’ve wanted, but all the services I’ve seen are designed to mine data on the stuff and places you order from. Not a huge fan of that, so this is where we’re at.

Also, suggest a name?

11 Likes

“Is It Almost Where Yet?”
or
“DoweHideandLooseFEDerallyEXplodedUShouldaPackedSaferUrPackagesSmashed”

4 Likes

Not bad. :thonk:

3 Likes

You could shorten that name suggestion to Almost Where, my thought was it’s kinda playing off / similar to the phrase almost there?

I know I use an app on my android phone called Parcels to track packages now if you’re looking for interface and feature design starting points/ideas.

OmniSense
LocateMate
Thepackis

1 Like

Crap, omnisense and locatemate seems already taken.

Thepackis is still good, SEO-wise. Its also a play on “da fuq is”.

1 Like

Naming

It would be best if the resulting acronym is AWOL, perhaps Almost Where Or Lost?

Regardless, I will be curious to see what weird observations you make along the way; do shipping companies share a namespace/numberspace like credit/debit/ID cards do? If not, is there at least a way to somewhat reliably discern the shipper from only the tracking number?

An edge case to be aware of

I know that there are some shipping companies in the USA that will ship a parcel themselves partway, then hand off the delivery to another company for the “last leg”, in which case the tracking number will actually by valid at two different shipping companies simultaneously.

Apple tangent

I know Apple has a system that detects tracking numbers (among other things like phone numbers, email addresses, and flight numbers) in text; the weird thing is that it redirects clicks on any detected codes through an Apple domain first:

https://trackingshipment.apple.com/?Company=___&Locale=&TrackingNumber=___

Note that iOS/macOS already detected the shipping company on-device, to fill in the “Company” parameter, so what is the point of this redirect? Do the company-specifc tracking pages change URLs so frequently that a redirection page is really needed?

I wonder if you might find a plausible explanation as to why Apple might be doing this as a byproduct of working on your own project.

1 Like

Better grab dowehideandloosefederallyexplodedushouldapackedsaferurpackagessmashed.com before someone snaps it up!

2 Likes

Seems interesting, looking forward to see how it turns out.
As for a name that’s easy to remember and everyone knows…
“Are we there yet?”

Would be cool if it worked had to deal with an international warranty repair with Shiit Audio a few month back and I still don’t have it back it’s right now being shipped back to them…

I’m not ordering Shiit from far away again if I can help it. Lul

But I’m not sure you can do a good job of parsing emails for anybody but exactly what you are dealing with. It’s hard to do at all and they answered my emails with letters with very little text that they did not copy paste out of some juristic book. Which in itself could actually make it easier when you can know the text beforehand. But I’m from Austria and those where physical letters in German.


“PackageGoFast” would be a very meme inspired name. ^^ (probably i would not go with that either) Don’t sweat it you can always rename it later.

routing via Apple, means they can change Where an item is looked up centrally.
Like if DHL.com changed to track.dhl or similar, then they change the back end, and all old links still work, and new links?
(also, they can get metrics, but whether they do anything with it :man_shrugging: )

DHL use a 10 number consignment number, with each piece getting a unique long number starting with letters JD (or JJD) and a long string of numbers aprox 20-25 in length. Shippers normally give just the 10 digit consignment number, which might be good enough to parse out.

UPS use unique long numbers starting with 1z, which have letters and numbers for the next 8 digits, then a unique id per item after that for around 15-20 numbers? so they can be parsed out with the 1z at the start.

not sure about USPS.

Some companies have their subcontractors feed back to the main agent with updates, some simply end with “handed over for final delivery” so a mixed bag. Some still track all the way on the main company’s list

or, are we almost there yet were the inspiration for my idea

I think

sounds better, but the acronym not quite as catchy

1 Like

I can tell you right now it’s for analytics.

I feel like that’s got to be a product already.

Oh wait, it’s a movie…

Feature Request: ability to forward email to it (SMTP server interface - I can help a little because I have written one in Go from scratch for home use over a few days, that I can’t publish because corporate policies are too demanding, but happy to “consult” / even in realtime if time and timezones allow… turns out it’s not that hard once you get started).

Feature Request: support at least one of those track everything aggregator backends, to backfill for rest of the world who have their own logistics companies e.g. DPD in the UK and so on…
… until native integration can be implemented.

1 Like

Hmmm both seem like a good idea. I’m inclined to shrink away from those aggregator backends due to analytics, which is one of the driving factors of building this service. Though I’ll definitely keep it in mind.

I wasn’t clear in the OP, but being US based makes me biased to US couriers, but that doesn’t mean I’m opposed to implementing support for other couriers be it UK, Germany, China, wherever. I only listed the big 4 for US because that’s what I will have tracking numbers to test against.

1 Like

Where the truck?

1 Like

I wonder where?

USPS

USPS lists a few samples of what its numbers might look like on this page under the collapsible “What does my tracking number look like?” section.

SERVICE / SAMPLE NUMBER

USPS Tracking®
9400 1000 0000 0000 0000 00

Priority Mail®
9205 5000 0000 0000 0000 00

Certified Mail®
9407 3000 0000 0000 0000 00

Collect On Delivery Hold For Pickup
9303 3000 0000 0000 0000 00

Global Express Guaranteed®
82 000 000 00

Priority Mail Express International®
EC 000 000 000 US

Priority Mail Express®
9270 1000 0000 0000 0000 00
EA 000 000 000 US

Priority Mail International®
CP 000 000 000 US

Registered Mail™
9208 8000 0000 0000 0000 00

Signature Confirmation™
9202 1000 0000 0000 0000 00

DHL

DHL has a support page which lists various formats for its tracking numbers:

DHL Express

  • 10 digits numerical only
  • OR starts with 000, JJD01, JJD00, JVGL or similar.
  • Examples: 1234567890 or JJD0099999999

DHL eCommerce Solutions

  • Typically starts with GM, LX, RX or up to five letters.
  • The ID length might vary from 10 to 39 characters.
  • Examples: GM99999999999 or 999999999999999999

DHL Parcel

  • Starts with 3S, JVGL or JJD
  • Examples: 3SBCC000123456 or JVGL9999999999

DHL Global Forwarding

  • 7-digit numerical only
    Example : 1234567
  • Starts with 1 number, followed by 2 letters and 4 to 6 numbers
    Example : 1AB12345
  • Starts with 3 to 4 letters
    Example : ABC123456
  • Starts with 3-digit carrier code, followed by hyphen (-), followed by the 8-digit masterbill number.
    Example : 123-12345678

DHL Freight

  • Order Code: starts with 2 to 3 letters, followed by hyphen (-), 2 to 3 letters, hyphen (-) and 7 numbers
    Example : ABC-DE-1234567
  • Starts with 4 numbers, followed by hyphen (-) and 5 numbers
    Example : 1234-12345
  • Numeric only with the length 9, 10 or 14
    Example : 123456789

UPS

UPS has a help page which lists its common tracking number formats:

UPS tracking numbers appear in the following formats:

  • 1Z9999999999999999
  • 999999999999
  • T9999999999
  • 999999999

As well as a host of other less-common tracking numbers it will accept:

Other UPS trackable numbers

UPS will also track the following types of tracking numbers, which contain from seven to 20 characters:

  • Delivery Order/Sub-PRO Number: Less-Than-Truckload (LTL)/and Truckload (TL) child shipment tracking numbers
  • House Air Waybill: Used for air freight movement
  • House Bill of Lading: Used for ocean freight movement
  • PRO Number: Used for surface freight movement
  • UPS InfoNotice: A bar-coded notice, which includes a 12-digit reference number, given on first delivery attempt in select countries
  • UPS Service Notice: A notice given on first delivery attempt in select countries

UPS Mail Innovations Tracking Numbers

You can track your UPS Mail Innovations piece on both ups.com and upsmi.com. UPS Mail Innovations tracking numbers differ from a small package reference number in length and terminology.

UPS Mail Innovations tracking numbers appear in the following formats:

  • United States Postal Service Delivery Confirmation Number: a 22-34 numerical identifier assigned by the U.S. Postal Service when Delivery Confirmation is requested
  • Sequence Number (MMS/MMI Number): an 18-digit number assigned internally by UPS Mail Innovations or UPS Worldship
  • Mail Innovations Compliant Package ID: a barcode-type identifier assigned by the shipper to each mail piece, using the structure below:

MIXXXXXXNNNNNNNNNNNNNNNNNNNNNN

This indicator is made up of the following three components:

  • MI - a UPS Mail Innovations indicator
  • XXXXXX - a unique 6-digit customer number assigned by UPS Mail Innovations
  • NNNNNNNNNNNNNNNNNNNNNN - a unique number, up to 22 characters, assigned by the shipper to identify a mail piece. Use alpha and/or numeric characters with no spaces or symbols. The same ID should not be reused for other mail pieces for at least six months.

UPS website is also announcing a change in tracking information provided, though I am unsure what this actually means:

Upcoming Changes: Limiting display of reference number tracking details for improved security.

UPS is changing how the reference number tracking results are displayed to provide additional protection:

  • Tracking details will be mostly masked with only basic reference number tracking details available.
  • Senders that have saved the shipment’s account number as a payment method in their profile, or in their company profile, will see the full tracking details.

DPD

I could not find anything as detailed for DPD, but one of its FAQ pages mentions that at least some of it numbers will be 14-digit.


If you do aim to be comprehensive, Amazon does have a list of carriers that it uses, this could be useful to get a sense of what other less-advertised or region-specific carriers exist:

https://www.amazon.com/gp/help/customer/display.html?nodeId=GBPEXEXYULHB5WCH

2 Likes

Ship o’hoy?

1 Like

I aim to make it easy to extend the functionality, so hopefully we can start with a few and add more as the need arises.

I don’t want to make huge promises from the onset.