Inspiration

One box, four stories: the carrier says empty, the scale says heavy, customs has a hold, and the reefer is warming. The usual fix is to hold everything, but that spoils cargo and jams the port.

What it does

Terminal Planner isolates the one box it isn't sure about, protects cargo that can't wait, and keeps the rest moving. Every decision comes with a reason you can read, on a normal day or in a crisis.

How we built it

We built it in Python and Flask. Hard safety rules come first, then a priority score decides who goes next. Reefer plugs go to whatever spoils soonest.

Challenges we ran into

There's no public data for scales, holds or reefers, so we built a simulator and labeled every panel as live or simulated. We also had to make sure the score can never overrule a safety rule.

Accomplishments that we're proud of

In the same simulated disaster, holding everything lost 11 cargoes. Terminal Planner lost 0 and made 0 unsafe moves.

What we learned

Conflicting data is a signal, not noise. A customs hold blocks a box's release, but the box can still be moved and plugged in.

What's next for Terminal Planner (Team Paradise)

Next we want to plug in real Terminal49 holds, check our assumptions with a working terminal, and pilot at Singapore's Tuas Port.

Built With

Share this project:

Updates

Submission history