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
- claude
- codex
- css
- html
- javascript
- python
Log in or sign up for Devpost to join the conversation.