Problem

Neptune was in the process of completing a major infrastructure upgrade to improve terminal throughput, and anticipated that the existing Information System (IS) they had in place to plan for and track the movement of cargo through the terminal was not going to be sufficient in meeting the future demands expected of the terminal. Existing processes to plan for and record train unload and vessel load were largely manual, and sourced information from a variety of sources—manual processes that were time-consuming and susceptible to error.

Solution

Interface 48 implemented an IS, named the Terminal Operating System (TOS), that includes an intranet web app as the front-end UI, and back-end services to mediate and orchestrate the flow of cargo movement instructions and data throughout Neptune's site. A resilient, multi-modal data exchange mechanism supports bi-directional data transfer between TOS and other IS components with which it integrates. The web app guides users through the process of reviewing and approving cargo movement plans based on automatically-sourced information from single sources of truth, to the extent possible. Back-end services facilitate the creation of cargo movement logs by automatically sourcing data recorded from scales located throughout the site.

Notable aspects of this project include:

  • Implementation of an intranet web app consisting of a front-end React/TypeScript client and back-end ASP.NET Core API,
  • Integration with on-premises Active Directory for user authentication and authorization,
  • Integration with on-premises SharePoint Server for document management,
  • Integration with AMQP Broker service hosted in the cloud to support decoupled data exchange between TOS and external IS components,
  • Leveraging actor model programming to support concurrent management of cargo movement logs by multiple users and system processes,
  • Leveraging system-versioned temporal tables to support extensive auditing of database records.