Skip to content
Case Study

Tyras

The system a vehicle export company runs on: every car from the auction lot to the ship, and every paper the port asks for on the way.

The Tyras dispatch order list: every car on its way, with its status, its lot and its destination
37Screens built 13Order states 15Documents generated 7User roles
What We Built

The order, the container, the paperwork, and the money.

The order

Every car starts as an order: the lot it was bought from, the VIN, the buyer number, where it is going. Thirteen states carry it from new to complete, and the ones that matter — arrived at the yard, out for delivery, loaded for export — are set by the system itself, not typed in by hand.

The container

Cars are grouped into containers of twenty, forty or forty-five feet, each with its own tare weight, its port of loading and its shipping line. A container knows what is inside it, and what the port will ask for it.

The paperwork

Fifteen documents come out of the system: the bill of lading, in a Montreal variant and a Vancouver one; the dangerous-goods declaration; the loading instructions; the dispatch confirmation; and invoices under three company names.

The money

Invoices in Canadian dollars, US dollars and euros, with GST and Quebec’s QST. The exchange rate comes from the Bank of Canada and is frozen onto the invoice, so a document from six months ago still reproduces exactly.

How It Works

From an auction lot to papers that write themselves.

  1. 1

    The car is bought and becomes an order

    A lot number, a VIN, an auction. From that moment the car has an address in the system, and everyone who touches it — dispatcher, driver, yard loader, carrier — sees the same one.

  2. 2

    The photo moves it forward

    The driver gets the job as a Telegram card, with the map and the deep link. He does the work, opens the app and uploads the photos. The group he files them under is the state the order takes: received at the yard, delivered, loaded for export. Nobody types a status.

  3. 3

    The papers write themselves

    When the container is ready, the documents come out already filled: the bill of lading for the right port, the dangerous-goods declaration with the right UN number for the batteries inside, the loading instructions with every VIN and its photo.

The car is entered once, at the auction. Everything after — the yard, the container, the ship, and every paper the port asks for — is the same record moving.

Built With

Interface, services, data, and how the documents ship.

Interface

Thirty-seven screens: the order, the container, the paperwork and the money, for whoever is signed in.

  • TypeScript
  • React 18
  • Vite
  • PrimeReact
  • TanStack Query

Services

Reactive Java services behind a single Keycloak login, shared by every one of the seven roles.

  • Java
  • Spring Boot (WebFlux)
  • Keycloak

Data

MongoDB for the orders and the containers, PostgreSQL for the people who use the system, and object storage for the documents themselves.

  • MongoDB
  • PostgreSQL
  • S3

Documents & delivery

Fifteen documents built as PDFs and spreadsheets, the job sent to drivers on Telegram, and every part shipped in its own container.

  • iText 7
  • JasperReports
  • fastexcel
  • Docker
  • GitLab CI
  • Telegram
The Hard Parts

The difficult parts are the papers, the batteries, and the money.

Papers a port will accept

A bill of lading is not a PDF with a logo on it; it is a legal form whose every field sits where the carrier expects it. Close to twelve thousand lines exist only to place text on pages — eight hundred for the Vancouver variant alone, and another for Montreal, because the two ports do not ask the same questions.

The battery decides the paperwork

An electric car is dangerous goods. The declaration scans the container’s vehicle list and fills in the right UN number — UN 3556 for battery-electric, UN 3166 for hybrid — so the form matches what is actually inside the box.

Money that stays reproducible

Amounts are held in exact decimals, never floating point. The rate comes from the Bank of Canada and is written onto the invoice itself, so reprinting a six-month-old document gives the same numbers, not today’s.

The Build

Still shipping, two years in.

Thirty months, from February 2024, and still going. Twelve names appear in the history; six people; four carried it.

2,200Hours of development

Two years in, and still shipping.

Get In Touch

Have a project idea? Write down a quote!

Got a project? Drop us a line if you want to work together on something exciting. Or do you need our help? Feel free to contact us.